Кэширование SQL запросов

fog

Рыцарь Джедай
Кэширование SQL запросов

Много раз слышал про «Кэширование SQL запросов», но так до сих пор не совсем понимаю что это такое, как оно работает и главное когда это полезно применять. Расскажите пожалуйста, или посоветуйте что по этому поводу почитать.
 

fog

Рыцарь Джедай
Нет, не читал. Спасибо за сслку, теперь прочту.
но я имел в виду немного другое. Кэширование результатов выборки уже средствами пхп, сохранение в массив и использование во время выполнения скрипта, сохранение в файл для последующих вызовов.
 

fog

Рыцарь Джедай
вот тут про то что я хотел узнать, немного узнал. Но не всё :)
 

fog

Рыцарь Джедай
Ну, я же говорю что ничего об этом не знаю, я просто предположил :)
 

nagash

Guest
вариант - или кешировать запросы на уровне самого мюскла - тебе дали ссылку - либо вообще этим не морочиться...

а по поводу того чтобы сохранять запрос в массив и спользовать в течении скрипта - я надеюсь не де делаешь несколько запросов в мюскл из разных мест скрипта чтобы добыть одни и теже данные?
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: nagash
вариант - или кешировать запросы на уровне самого мюскла - тебе дали ссылку - либо вообще этим не морочиться...
1) не мысклем единым жив человек
2) посылаем запрос к базе данных (которая, вообще говоря, может быть на другом сервере), база создаёт новый тред, база проверяет наличие запроса в своём кэше (при этом база, вообще говоря, не знает, какие у тебя данные и что из них имеет смысл кэшировать), база отправляет тебе результат (вполне возможно, что опять по сети).
другой вариант
проверяем наличие рез-та запроса в своём кэше (при этом если запрос смысла кэшировать нету, то и не заморачиваемся), загружаем результат если есть, если нет --- отправляем запрос к базе.

ну-ка, подумай-ка, какой вариант лучше?
 

fog

Рыцарь Джедай
Name:
Иногда может быть полезно.
Можно вместе с форматированием кэшировать.
Ну, это само собой. Но это другое.

Sad Spirit:
Ну, это примерно то о чём я говорю. Но, признаться, об удалённой базе даннх я не думал, я хотел узнать имеет ли смысл кэшировать запросы при обычных условиях, т.е. база легко доступна. Видимо не имеет :) Или имеет, но в очень в редких случаях, ведь, действительно, одни и те же запросы выполнять... как минимум странно :) В крайнем случае при таком раскладе можено складывать в массив хэш запроса, и идентификатор его результата, и потом делать
mysql_data_seek ($res, 0); (или аналог)
Разве что, при выборках с лимитами, после выборки 1, 100, 10-20 - брать из кэша. (такая идея была в треде, ссылку на который я дал)
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: fog
Но, признаться, об удалённой базе даннх я не думал, я хотел узнать имеет ли смысл кэшировать запросы при обычных условиях, т.е. база легко доступна. Видимо не имеет :) Или имеет, но в очень в редких случаях, ведь, действительно, одни и те же запросы выполнять... как минимум странно :)
Почему странно?
Конкретный сайт, конкретная страница: сеансы кинотеатров в Москве на сегодня и завтра. Запрос выдаёт один и тот же результат, если не меняется "сегодня" (что происходит раз в сутки) или если не меняется расписание (что происходит не чаще). При этом запросом можно пугать маленьких детей и выполняется он ощутимое время, а страницу запрашивают часто. Явный кандидат на кэширование.
 

fog

Рыцарь Джедай
Ыыыы, я имел в виду, много одинаковых запросов за время одного выполнения скрипта.
Кэшировать готовую страницу - само собой.
 

nagash

Guest
fog
ненадо делать одинаковые запросы в течении одного скрипта...
 

Sad Spirit

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

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

fog

Рыцарь Джедай
ненадо делать одинаковые запросы в течении одного скрипта...
Много одинаковых запросов во время выполнения одного скрипта --- глупость, надо сразу считывать рез-т в массив и дальше работать с ним.
я это сам сказал уже :)


Всем большое спасибо за участие, вопрос ожно считать исчерпанным :)
 
Сверху