MySQL « Хранение текста

Работая с php и mysql возник вопрос, где лучше хранить тексты, по которым не производится поиск (то есть только отображаются в таком виде, в котором есть), в базе данных или в файлах?

Если всё же в базе, то почему чаще всего кеш страниц хранят в файлах, а не в базе?

1 ответов


Вообще-то большинство CMS так и делают, как вы описали - хранят в базе. Почему? Да так гораздо быстрее получить эти тексты, так гораздо проще по ним искать. Производительность получения контента из базы гораздо выше, нежели загрузки из файлов.

Что касается кеша, то даже его можно хранить в базе. Только смысл кеша есть именно в том, что бы разгрузить некоторые ресурсы (к примеру базу данных или тот же винт, от чего кеш загружается в память). Обычно кешем является УЖЕ "скомпилированный" файл в котором минимальное количество обращений к ресурсам CMS, базам данных и прочим ресурсам.


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


потому что файловая система работает быстрее


В базе, но использовать более быстрые и более масштабируемые key-value решения: Memcached(b), Redis etc.