Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> кэширование результатов выборки 
:(
    Опции темы
MyDarkSide
Дата 23.9.2009, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 21.3.2008

Репутация: нет
Всего: -1



Суть проблемы такова:
из одной основной таблицы и нескольких к ней присоединеных таблиц 
надо сделать сложную выборку, выборка сама по себе не сложная но, она большая в SQL запросе получается куча AND ( (..OR..)   AND (..OR..) )) и т. д. - фильтр какие записи в дневниках можно показывать юзеру, а какие - нет 
плюс пагинатор и сортировка, короче запрос на несколько строк, и хотя большая часть условий простые логические условия есть сомнения по производительности, а уж по читабельности точно не айс. 
закэшировать этот запрос целиком нельзя, так как он меняется в зависимости от того какой юзер смотрит.

Поэтому возникла другая идея: сначала выбирать из таблицы все записи без LIMIT отсортированные по нужному полю, а в поле where оставить только условия не зависящие от юзера (постоянные), далее выбирать из результата выборки с помощью  mysql_fetch_assoc()
одну строку - прогонять через фильтр уже на php,  пока не наберется нужное количество записей (пагинация). 
Так как основная таблица большая то буфер с результатами запроса будет отъедать много памяти, с другой стороны, такой запрос уже хорошо кэшируется, 

вопрос: может ли MYSQL штатными средствами кэшировать результаты или они передаются сразу php машине - и дальше она должна их кэшировать ? 

PM ICQ   Вверх
Akina
Дата 23.9.2009, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



См. мануал, "The MySQL Query Cache" и соответственно SQL_CACHE в SELECT.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
MyDarkSide
Дата 23.9.2009, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 21.3.2008

Репутация: нет
Всего: -1



я несколько сумбурно описал проблему 
скажем так кэширование на мускуле настроили и при одном и том же запросе он быстренько возвращает готовый результат 
но он возвращает его в буфер PHP и получается если одновременно происходит несколько одинаковых запросов которые возвращает много одинаковых результатов , то для каждого из них PHP будет создавать свой буфер с одинаковыми данными. 
PM ICQ   Вверх
Akina
Дата 23.9.2009, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Ну а что ты тут поделаешь... РНР мудрить не будет. Ему зачем?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0448 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.