Хранить кэш в БД или в файлах ?

программирование php MySQL базы данных производительность

Есть скрипт, хранящий кэш шаблонов в файлах. Есть мысль ускорить работу скрипта, сохраняя кэш в блобах БД MySQL.
Кто-нибудь проводил сравнительный анализ производительности приложений при хранении данных в файлах и в БД ?

Догадки просьба не писать, нужны практические исследования, либо ссылку на оные.

Примечание:
#1
Аватарки - совсем другое. Это картинки, которые могут быть загружены асинхронно без участия PHP, а в случае хранения в БД придётся подключать PHP, что замедляет.

Примечание:
2 NetRain:
да, изначально таблицы MySQL хранятся в файлах. Однако MySQL грузит их в память, затем уже с ними работает в памяти, и не факт, что он забывает про них при закрытии соединения. Файлы же приходится 100% постоянно для каждого скрипта грузить заново.

Если бы это было так просто)
Ответы:
народ хором советует _не_ хранить в блобах такие вещи, как аватарки на форуме. Мол, тормозно. Думается мне, тут тот же случай.
Файловая система в десятки раз быстрее БД, хотя бы потому, что БД использует файловую систему для хранения информации. Но вы еще хотите добавить к работе с ФС обработку запросов и сетевых соединений.
>>Файловая система в десятки раз быстрее БД, хотя бы потому, что БД использует файловую систему для хранения информации.
Файловая система тоже бд) И нормальные бд держат в памяти многие таблицы.
ну вообще любую CMS возьмите и компонент кэширования к ней - все известные мне кэшируют через файлы.
Мне интересно узнать, каким образом Вы повысите быстродействие системы, перенеся кэш из файловой системы в MySQL? Это Вам не Cache, организация которого позволяет работать с деревьями на диске быстрее, чем при выгрузке их в ОЗУ.
Кэшируют MySQL -> FS, но не наоборот. Получается, если Вы перенесете кэш в MySQL, то для каждого шаблона и для каждой отработки скрипта Вы будете выполнять по одному запросу. Положим, у Вас грузится 10-20 шаблонов на странице - это уже 10-20 запросов. Умножим на кол-во загрузок скрипта в секунду и получим общее кол-во запросов, которые выполняются просто потому что Вам захотелось иметь кэш в базе данных. На мой взгляд это не рационально и можно было бы эти ресурсы потратить на другие возможности.
Я соглашусь с NetRain - FS в разы быстрее, чем базы данных, хотя это не всегда верно при перезаписи файлов. Однако, кэш записывается на диск единожды и в дальнейшем файлы просто читаются интерпретатором, что обеспечивает максимальную скорость работы, поэтому в данном случае про FS vs DB сказано верно.
2Борис, я бы не стал опираться на "любую CMS", т.к. реализации порой в таких CMS поражают до мозга костей..


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.