каким образом можно ускорить переход по страницам после поиска!

sector119

Guest
каким образом можно ускорить переход по страницам после поиска!

каким образом можно ускорить переход по страницам после поиска!? что-бы не делать каждый раз запрос с поиском по тексту что находится в базе, сортировке по релевантности, дате и прочему! на это уходит относительно большое кол-во времени!

курсоры и временные таблицы как-бы не подходят т.к. теряется свзязь с СУБД после окончания скрипта и соответственно курсор закрывается и временная таблица пропадает!

что возможно сделать? кроме кеширования запроса и его оптимизации!

Спасибо!
 

ONK

Пассивист PHPСluba
Можно сделать кэширование наденной информации для последнего запроса, очень просто и эффективно..
 

Eugene Bond

sudo rm - rf /
Если на это уходит "относительно большое кол-во времени" то надо пересмотреть организацию и алгоритм поиска, а так же оптимизировать БД
 

Romantik

TeaM PHPClub
можно попробовать сохранять массив ИД выборки и потом выбирать от и до.

ЗЫ: это непроверенная мысль
 

tony2001

TeaM PHPClub
сохранять в сессию/базу список найденных ИД и выводить по
SELECT * FROM .. WHERE id IN(..);
селект по первичному ключу намного быстрее.
 

sector119

Guest
Автор оригинала: tony2001
сохранять в сессию/базу список найденных ИД и выводить по
SELECT * FROM .. WHERE id IN(..);
селект по первичному ключу намного быстрее.
хорошая идея! что-то новое :) а вот интересно как это на гугле организовано!? ведь очень быстро работает переход между страницами!

я сессии не использую! ну у меня как-бы свой вариант сессий :) с хранением в базе :)
 

Flying

Guest
Ну с Google тебе сравнивать не стоит :)
А вот сделать так, как говорит tony - это вполне нормально. Другое дело, что лично я предпочитаю получать этот список ID и хранить его в сессии или в сериализованном виде во временном фaйле потому что во-первых мой модуль поиска производит дополнительный расчет релевантности уже на PHP после получения данных из БД, а во-вторых запихивание списка найденных ID в базу (как я понимаю - через INSERT INTO ...) может занять определенное время, особенно если число результатов поиска велико.
 

sector119

Guest
Автор оригинала: Flying
Ну с Google тебе сравнивать не стоит :)
А вот сделать так, как говорит tony - это вполне нормально. Другое дело, что лично я предпочитаю получать этот список ID и хранить его в сессии или в сериализованном виде во временном фaйле потому что во-первых мой модуль поиска производит дополнительный расчет релевантности уже на PHP после получения данных из БД, а во-вторых запихивание списка найденных ID в базу (как я понимаю - через INSERT INTO ...) может занять определенное время, особенно если число результатов поиска велико.
ну я исспользую tsearch от постгреса, там во второй версии уже кажется появилась сортировка по релевантности! и я не думаю что сделать унсериализе будет намного быстрее чем раз сделать инсерт ид-шников и потом при селекте делать select ... where id in select id from tmp_search where sid = "session_id";

ну что-то в этом духе... можно и в куку засунуть ид все! и потом прочитать... ну это уже ерунда :) для меня главное сама идея с ид-шниками :)

хотя про гугл тоже интересно, как у них это все устроено :)
 

Silent

Новичок
> хотя про гугл тоже интересно, как у них это все устроено

http://www-db.stanford.edu/~backrub/google.html
 
Сверху