Сохранить набор результатов PostgreSQL в сессиях? - PullRequest
0 голосов
/ 15 июля 2010

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

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

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

1 Ответ

1 голос
/ 15 июля 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...