[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вставка 100 записей в базу при генерации страницы
RAMM13
Столкнулся с проблемой организации поиска.. Итак поиск идет по анкетам, в виду того что навигация постраничная, думаю сделать сохранение результата поиска в базе дабы при перемещении по страницам поиск не осуществлялся вновь. Поиск ограничен 100 результатами. Получается добавление в базу 100 записей где в таблице 6 полей и из них 4 индекса: 3-INT, VARCHAR. насколько быстро это будет происходить?
Попутный вопрос. Встречал на некоторых сайтах поиск идет в фоновом как бы режиме. Нажимешь поиск, открывается пага где написано что поиск идет, обновите страницу сек через 10-15. Вот как также сделать?



Спустя 30 минут, 21 секунда (21.09.2009 - 20:36) Guest написал(а):
100 записей для базы данных, это для вообще не ощутимо

ajax загрузка данных

Спустя 1 час, 33 минуты, 17 секунд (21.09.2009 - 22:09) ИНСИ написал(а):
RAMM13 только 1 человек будет пользоваться поиском? Если это сайт и там такая штука будет стоять, то не советую так делать! А если 1 чел, то потом не забудь удалять записи у которых `date` больше 2 часов =))

Спустя 10 часов, 19 минут, 2 секунды (22.09.2009 - 08:28) RAMM13 написал(а):
Цитата (welbox2 @ 21.09.2009 - 19:09)
RAMM13 только 1 человек будет пользоваться поиском? Если это сайт и там такая штука будет стоять, то не советую так делать! А если 1 чел, то потом не забудь удалять записи у которых `date` больше 2 часов =))

Сайт вап по этому аякс отпадает. Автоочистку результатов поиска само собой крон выполняет, так же существует определенное время между поисками для отдельного взятого юзера. Если поиск результатов нужных не дал, то юзер нажиает новый поиск (в это время удаляются все его резултаты предыдущего поиска) и поиск проходит вновь. Вопрос лиш в том, что сам по себе поиск операция ресурсоемкая а тут еще автосохранение результатов. Хотелось бы сделать поиск как бы отсроченным, когда бы сервер не ждал результата поиска а выдавал страницу с "Подождите, обновите страницу сек через 15" а поиск в это время шел. Если юзер обновил страницу но поиск еще не завершен, то выдавалась та же страница с Wait... Не могу понять механизм такого поиска. Наглядный пример такого поиска на сайте love.bodr.net . Возможно ли такой поиск осущ без CGI вообще?

Спустя 32 минуты, 10 секунд (22.09.2009 - 09:00) Xakep написал(а):

 ! 

М
Нет ничего невозможного
sergeiss
предупреждение (пока устное) за очередное бессмысленное сообщение. Если есть что сказать по сути вопроса - скажи.

Спустя 4 часа, 25 минут, 45 секунд (22.09.2009 - 13:26) RAMM13 написал(а):
Хорошо.. перефразирую попроще:)

Допустим есть скрипт в котором в первых же строках идет вывод "echo 'Жди и я вернусь'" а затем начинается по ходу скрипта ресурсоемкая операция с базой. Как закрыть соединение с браузером сразу после вывода ДО ОПЕРАЦИЙ С БАЗАМИ (чтобы браузер не "ждал").

exit() прекращает выполнение всей проги а надо аналог его но чтобы прекращалось для юзера ток выполнение а на сервере продолжалас выполнятся до конца

Спустя 1 час, 20 минут, 29 секунд (22.09.2009 - 14:47) Nikitian написал(а):
Так нельзя. Поищите описание как работает клиент-серверное приложение. Если закрываете соединение, то сервер про вас забывает. Можно либо пинать сервер аяксом на предмет прогресса выполнения задачи, либо использовать постоянное соединение. В простом html+php закрывать соединение с браузером при продолжении выполнения операции нельзя.

Спустя 38 минут, 27 секунд (22.09.2009 - 15:25) FatCat написал(а):
Цитата (RAMM13 @ 21.09.2009 - 21:06)
насколько быстро это будет происходить?

Примерно так реализован поиск по форуму движка пхпББ - заполняются таблицы индексации слов в сообщениях.
На маленьких форумах это работает быстрее, чем полнотекстовый поиск по базе.
Но на больших форумах ресурсоемкость начинает расти в геометрической прогрессии, и приходится либо удалять старые сообщения для уменьшения базы (так делают большинство форумов) или же запрещать поиск (как на торре, где поиск разрешен только по заголовкам). Порог "затыка" начинается от 50-100 тысяч записей в таблице.
На инвижне с полнотекстовым поиском форум нормально работает и с миллионом сообщений.

Спустя 1 день, 2 часа, 41 минута, 50 секунд (23.09.2009 - 18:07) RAMM13 написал(а):
Цитата (FatCat @ 22.09.2009 - 12:25)
Цитата (RAMM13 @ 21.09.2009 - 21:06)
насколько быстро это будет происходить?

Примерно так реализован поиск по форуму движка пхпББ - заполняются таблицы индексации слов в сообщениях.
На маленьких форумах это работает быстрее, чем полнотекстовый поиск по базе.
Но на больших форумах ресурсоемкость начинает расти в геометрической прогрессии, и приходится либо удалять старые сообщения для уменьшения базы (так делают большинство форумов) или же запрещать поиск (как на торре, где поиск разрешен только по заголовкам). Порог "затыка" начинается от 50-100 тысяч записей в таблице.
На инвижне с полнотекстовым поиском форум нормально работает и с миллионом сообщений.

Полнотекстового поиска вообще в моем случае нет. В данном случае идет поиск по Полу (tint-0/1), возрасту (поле DATE рождения), стране (INT), региону (INT), населенному пункту (VARCHAR), целям знакомств (VARCHAR постоянной длины типа 0110110 или 1110011, каждая цифра означает согласие или несогласие с определенной целью. поиск идет с использ. LIKE _ _ 1 _ _ 1_ например), по наличию фоток (INT поле 0 или отличное от ноля число). Думаю создать очередь для поиска дабы разрулить возможные нагрузки на сервер изза поиска. Скажем одновременно может производиться 2 поиска. Нажимает Искать, проверяется счетчик не >=2. Если ИСТИНА, то обождите (тут ест вариант, возможность оставления заказа поиска и крон проведет ее самостоятельно и оповестит в ПС). Если ЛОЖЬ, то счетчик увеличивается +1, проходит поиск, результаты допустим МАКС 100 рез пишутся в отделную таблицу, затем счетчик -1, и при навигации поиск уже не будет проводится повторно.
Что касается подводных камней типа чел нажиает кнопку Обновить страницу при нажатой "Поиск", думаю уже на файловом либо сессийном уровне чтобы не засорять базу вести личный счетчик, исключающий многократные обновления страницы а так же частого поиска через короткие промежутки времени
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.