[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: сесия - а много там места?
olgatcpip
Здравствуйте.

Есть у меня поиск. Находится 100 элементов (к примеру 100).
и все бы хорошо, но тормозит.

Я вывожу только 10 штут на страницу и в запросе делаю limit 10.
есть идея в сессю записывать
$_SESSION[1]=данные
$_SESSION[2]=данные
...

1,2... номера страниц
типа такого тогда при повторном обращении на страницу не было бы тормозящего запроса.

Но уменя есть так же сортировка по параметрам, к примеру, название, дта, цена всего 13.

И если учитывать это, то мне нужн будет в сессию записывать так
$_SESSION['сортировка по полю 1'][1]=данные
$_SESSION['сортировка по полю 2'][2]=данные
...


Но это же ужасно много! Выдержит ли сессия, элементов может находиться и 100 000!

Но я в сессию буду хранить не все данные (название. дата...) а только
идентификаторы найденых элементоы, а запрос чисто к этим 10рым делать.

Вопрос: нормально ли я разрулила ситуацию?

Примечание: понимаю что лучше бы я оптимизировала и ускорила запрос. Но с учетом, что запрос уже максимально оптимизирован на сколько этот ход конем оправдан?

Хочу узнать ваше мнение, дорогие форумчане.



Спустя 1 час, 21 минута, 51 секунда (2.03.2010 - 01:05) vital написал(а):
Хост-то выдержит.. Но ЗАЧЕМ?? Это извращентсво. Храните данные в бд, она для того и предназначена. А для ускорения - можете хранить результаты запроса во временной таблице(в памяти). Есть такой тип таблиц=)

Спустя 3 часа, 16 минут, 17 секунд (2.03.2010 - 04:21) kirik написал(а):
olgatcpip
Изначально в php сессия - обычный файлик с сериализованными данными в нем. Что запишешь, то туда и сериализуется. Размер файла ограничен лишь возможностями фаловой системы (для ext3 это 16ГБ-2ТБ в зависимости от того каков размер блока) и здравым смыслом.

Твое решение в описанном случае не катит, ибо то что ты запишешь в сессию будет доставаться каждый раз при обращении юзера к сайту - даже если эти данные не нужны. Посему кэширование - лучший и единственный верный вариант smile.gif Куда кэшировать - вопрос другой (можно в те же файлы, можно в память).

Спустя 10 часов, 47 минут, 41 секунда (2.03.2010 - 15:09) olgatcpip написал(а):
kirik, куда кэшировать лучше?
есть правила по которым можно выбрать куда?

в каком формате кэшировть?

Спустя 6 часов, 25 минут, 53 секунды (2.03.2010 - 21:35) kirik написал(а):
Цитата (olgatcpip @ 2.03.2010 - 07:09)
куда кэшировать лучше?

Лучше в память, но не на всех хостингах установлен соответствующий софт (почитай про memcached)
В файлах вполне можешь кэш хранить, пока реальной нагрузки на сайт не будет.

Цитата (olgatcpip @ 2.03.2010 - 07:09)
в каком формате кэшировть?

Сериализованный массив smile.gif

Спустя 1 час, 56 минут, 55 секунд (2.03.2010 - 23:32) olgatcpip написал(а):
Спасибо, почитаю.
У нас свой сервер, так что можем установить хоть пасьянс.
Нагрузка будет ужасная, даже страшно представлять.

Спустя 14 минут, 13 секунд (2.03.2010 - 23:46) kirik написал(а):
Цитата (olgatcpip @ 2.03.2010 - 15:32)
Нагрузка будет ужасная, даже страшно представлять.

Тогда мемкэш smile.gif Проще потом будет сервера добавлять

Спустя 2 часа, 16 минут, 26 секунд (3.03.2010 - 02:02) qpayct написал(а):
Хранить для каждого пользователя такие сессии по моему расточительно. Такие задачи решаются одной функцией с динамичным запросом в бд, а в сессии достаточно хранить только от и до + сортировать по такому то... и все дела. Разница в скорости не значительная, ведь результаты хранятся на серваке в любом случае. Так вообще размер сессии ограничен кажись в php.ini

Спустя 6 часов, 4 минуты, 29 секунд (3.03.2010 - 08:07) olgatcpip написал(а):
Цитата
одной функцией с динамичным запросом в бд
можно поподробнее?

Спустя 1 час, 55 минут, 48 секунд (3.03.2010 - 10:03) qpayct написал(а):
ну вот
тут
тут
тут
пример для капитальных извращенцев ohmy.gif
что-то похожее на средненькие решения этого вопроса. посмотри, будут вопросы, пиши


_____________
Ласковое слово и кошке приятно... Плюсик в карму сойдет wink.gif
*smarty дока - новая любовь
Моё рукотворение ругайте, хвалите smile.gif
Веду маленький блог
в этом блоге публикую новые работы
WMR217126627282 wink.gif

Быстрый ответ:

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