2015-01-11 2 views
0

Что я хочу сделать, это кэшировать каждый запрос базы данных в файлы. Запросы будут кэшироваться с именами, включая имена пользователей пользователей или идентификаторы пользователей. Конечно, когда пользователь меняет свою информацию, файл кэша будет заменен новым. Даже взаимодействия, такие как дружба между пользователями, будут кэшироваться.Является ли кеширование каждого запроса базы данных здоровым в laravel?

Если у меня 1 000 000 пользователей, у меня будет миллион (возможно, миллиарды) файлов. Это хорошо или плохо для производительности?

+0

Вы оценили производительность своей базы данных и обнаружили, что она медленная? У вас миллион пользователей и миллиард файлов? –

+0

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

+0

Хорошо, но миллион пользователей не очень много для компьютера. Если вы правильно настроили базу данных, она должна быть быстрее, чем вам нужно. Оптимизация материала, не зная, как реагирует ваша система, может даже замедлить работу. Если вы действительно хотите оптимизировать свою систему, вы должны создать миллион пользователей и файлы, а затем профилировать систему во время загрузки (используя XDebug, KCacheGrind/WinCacheGrind и [ab] (https://httpd.apache.org/docs/ 2.2/programs/ab.html), например). –

ответ

0

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

В любом случае я бы рекомендовал использовать Memcache или APC, как говорит laravel docs.

+0

В этом случае я хочу задать другой вопрос. Поиск файлов лучше или хуже запросов mysql? –

+1

Все зависит от ситуации. Запрос базы данных - это в основном поиск файлов, так как ваши данные хранятся на диске в конечном итоге (в большинстве случаев). Когда у вас очень сложный запрос (например, база данных должна выполнять большую работу до получения правильных результатов), сохранение ее в файле и загрузка результатов там может быть быстрее. Но я думаю, что не было бы никакой пользы для кэширования простого выбора, где id = 1 с одним результатом в файл. Вы должны действительно проверить эти ситуации, чтобы убедиться, что запрос действительно выиграет от кэширования в файл. –

Смежные вопросы