Есть у меня поиск. Находится 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ТБ в зависимости от того каков размер блока) и здравым смыслом.
Твое решение в описанном случае не катит, ибо то что ты запишешь в сессию будет доставаться каждый раз при обращении юзера к сайту - даже если эти данные не нужны. Посему кэширование - лучший и единственный верный вариант Куда кэшировать - вопрос другой (можно в те же файлы, можно в память).
Изначально в php сессия - обычный файлик с сериализованными данными в нем. Что запишешь, то туда и сериализуется. Размер файла ограничен лишь возможностями фаловой системы (для ext3 это 16ГБ-2ТБ в зависимости от того каков размер блока) и здравым смыслом.
Твое решение в описанном случае не катит, ибо то что ты запишешь в сессию будет доставаться каждый раз при обращении юзера к сайту - даже если эти данные не нужны. Посему кэширование - лучший и единственный верный вариант Куда кэшировать - вопрос другой (можно в те же файлы, можно в память).
Спустя 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) |
в каком формате кэшировть? |
Сериализованный массив
Спустя 1 час, 56 минут, 55 секунд (2.03.2010 - 23:32) olgatcpip написал(а):
Спасибо, почитаю.
У нас свой сервер, так что можем установить хоть пасьянс.
Нагрузка будет ужасная, даже страшно представлять.
У нас свой сервер, так что можем установить хоть пасьянс.
Нагрузка будет ужасная, даже страшно представлять.
Спустя 14 минут, 13 секунд (2.03.2010 - 23:46) kirik написал(а):
Цитата (olgatcpip @ 2.03.2010 - 15:32) |
Нагрузка будет ужасная, даже страшно представлять. |
Тогда мемкэш Проще потом будет сервера добавлять
Спустя 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 написал(а):
ну вот
тут
тут
тут
пример для капитальных извращенцев
что-то похожее на средненькие решения этого вопроса. посмотри, будут вопросы, пиши
тут
тут
тут
пример для капитальных извращенцев
что-то похожее на средненькие решения этого вопроса. посмотри, будут вопросы, пиши
_____________
Ласковое слово и кошке приятно... Плюсик в карму сойдет wink.gif
*smarty дока - новая любовь
Моё рукотворение ругайте, хвалите smile.gif
Веду маленький блог
в этом блоге публикую новые работы
WMR217126627282 wink.gif