Что дороже для чтения шаблонов: запрос к базе данных или чтение файла? - PullRequest
4 голосов
/ 05 декабря 2010

Мой вопрос довольно прост; Мне нужно прочитать некоторые шаблоны (в PHP) и отправить их клиенту.

Для данных такого типа, в частности text / html и text / javascript; дороже считывать их из базы данных MySQL или из файлов?

С уважением
Том

безопасность inb4; Я в курсе.

PS: я читал другие темы о похожих вопросах, но они либо имели отношение к другим видам данных, либо не получили ответа.

Ответы [ 3 ]

6 голосов
/ 05 декабря 2010

Чтение из базы данных дороже, без вопросов.

Где живут плоские файлы? В файловой системе. В лучшем случае к ним недавно обращались, поэтому операционная система кэшировала файлы в памяти, и это просто считывание из памяти, чтобы передать их в вашу PHP-программу для отправки клиенту. В худшем случае ОС должна скопировать файл с диска в память, прежде чем ваша программа сможет его использовать.

Где хранятся данные в базе данных? В файловой системе. В лучшем случае к ним недавно обращались, поэтому MySQL хранит эту таблицу в памяти. Однако ваша программа не может получить доступ к этой памяти напрямую, ей нужно сначала установить соединение с сервером, отправить данные аутентификации туда и обратно, отправить запрос, MySQL должен проанализировать и выполнить запрос, а затем извлечь строку из памяти и отправьте его в вашу программу. В худшем случае ОС должна скопировать файл таблицы базы данных на диске в память, прежде чем MySQL сможет получить строку для отправки.

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

1 голос
/ 05 декабря 2010

Существует множество факторов, которые могут повлиять на то, насколько они оба дороги.

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

  • Чтение плоского файла должно быть быстрее, чем чтение данных из базы данных.

  • Наличие их в базе данных обычно облегчает редактирование несколькими людьми.

Возможно, вы захотите использовать memcache для хранения шаблонов после их чтения, так как чтение из памятивсегда быстрее, чем чтение из БД или плоского файла.

0 голосов
/ 05 декабря 2010

Это действительно не имеет достаточного значения, чтобы беспокоить вас.С каким объемом вы работаете?Будет ли у вас более миллиона просмотров страниц в день?Если нет, я бы сказал, выбирайте, какой из них легче всего кодировать и поддерживать, и не беспокойтесь о расходах альтернатив, пока это не станет проблемой.

В частности, если ваши шаблоны в настоящее время находятся в форме файлаоставил бы их там, и если бы они были в форме БД, я бы оставил их там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...