Есть ли смысл кэшировать результат запроса mysql в файл?

tend

Новичок
Есть ли смысл кэшировать результат запроса mysql в файл?

Из небольшой таблицы (строк 50-100) в течение дня много раз (при каждой загрузке страницы) берется название товара.
Названия меняются, может 1 раз в неделю.
Есть ли смысл кэшировать это название в текстовый файл?
То есть чтобы только первый раз (например, в течение дня) был запрос к базе данных mysql, а потом это название сохранялось в файл и в следующие разы название бралось из файла.
Интересует скорость и нагрузка на сервер: какой вариант быстрее (постоянное обращение к БД или через файл) и менее нагрузочный на сервер.
 

DiMA

php.spb.ru
Команда форума
глупая идея с учетом встроенного автоматического кеширования всех запросов самой базой

тебе остается только погуглить статейки на данную тему и грамотно распределить память в конфиге... хотя, для мелочевых сайтах на 100 строк базы смысла в оптимизации нет
 

HraKK

Мудак
Команда форума
Не глупая. Кеш запросов в базе сбивается, в файле - нет.
 

zerkms

TDD infected
Команда форума
HraKK
он "сбивается" там не просто так - а потому, что становится неактуальным. актуализация кэша, как показывает практика, весьма непростая задача, знаешь ведь.
 

pilot911

Новичок
Автор оригинала: zerkms
HraKK
он "сбивается" там не просто так - а потому, что становится неактуальным. актуализация кэша, как показывает практика, весьма непростая задача, знаешь ведь.
не только:

Qcache_lowmem_prunes - Количество запросов, удаленных из кеша по причине недостаточного количества памяти.

так что результаты могут быть удалены, при этом оставшись актуальными... от чего спасает кэш на файлах в том числе
 

DiMA

php.spb.ru
Команда форума
Замерьте, сколько времени уйдет на запись/чтение в сериализованный файл 20 метров данных от SQL запроса - несколько (десятков)СЕКУНД минимум. Обычный(типичный) запрос исполняется базой за доли секунды. В общем случае SQL кеширование и файлы близко не стояли.

Кешировать сгенерированные GD картинки, целые HTML блоки, отчеты, другие мелкие данные (например, 1C-запрсосы и HTTP закачки) - имеет смысл. Но куча файлов в каталогах на диске создает заметные тормоза, когда этих мелких файлов много - нужно чистить по крону, следить за непревышением числа файлов в каталогах и т.д.
 

Активист

Активист
Команда форума
> Но куча файлов в каталогах на диске создает заметные тормоза
В этом случае используется reiserfs
 

Фанат

oncle terrible
Команда форума
Интересно, что из отвечавших активистов только один Дима прочел вопрос, из небольшой таблицы (строк 50-100)

но мы ведь тут все крутые. мы все хайлоадом занимаемся. нас хлебом не корми - дай порассуждать о кэшировании, ограничениях ФС, актуальности данных.
 

Alexandre

PHPПенсионер
Интересно, что из отвечавших активистов только один Дима прочел вопрос, из небольшой таблицы (строк 50-100)
тогда смысла нет....
но если данных много, то
Но куча файлов в каталогах на диске создает заметные тормоза, когда этих мелких файлов много - нужно чистить по крону, следить за непревышением числа файлов в каталогах и т.д.
1) берем в качестве имя файла md5 от запроса
2) бьем кучу файлов по директориям, по первым двум символам - итого в директории не более 256 файлов -500 файлов, а в корневой - 256
3) раз в сутки по крону запускаем чистильщик - который смотрит актуализацию файла stat и удаляет его при необходимости. Пишется два часа.

тормозов нет, используется в реальном нагрузочном проекте
 
Сверху