2010-07-15 4 views
0

Я создаю веб-приложение с использованием PHP и PostgreSQL. База данных слишком большая, и некоторые виды поиска требуют много времени для обработки.Сохранять результаты PostgreSQL в сессиях?

Пользователь может подождать в первый поиск, но он отстой, когда находится в папгах. Могу ли я хранить набор результатов в сеансах vars?

Было бы здорово иметь дело с разбиением на страницы.

ответ

1

Да, конечно, вы можете, но с множеством разных результатов, загрузка данных на session_start может стать громоздкой. Кроме того, один и тот же поиск может выполняться более чем одним пользователем, что приводит к дублированию (трудоемким) поискам/большим сеансам (каждый шаг загрузки занимает больше времени)/больше места для хранения.

Если данные безопасны от изменений, достаточных для хранения в сеансе, посмотрите на такие кеши, как APC или Memcached, чтобы сохранить результат с помощью значимого ключа. Таким образом, загрузка снижается из базы данных, и поиск может быть предоставлен пользователям.

Если у вас есть фиксированное количество элементов для разбивки на страницы, вы можете даже рассмотреть возможность хранения разных «страниц» с пре-или постфиксным ключом, поэтому вам не нужно выбирать подмножество результата каждый раз (т. е. хранить с помощью клавиши «поиск: foo = bar | 1»/«поиск: foo = bar | 2» и т. д.)

Смежные вопросы