#php #database #caching #lumen
Вопрос:
У меня в базе данных 110 записей (3,3 КБ), они никогда не изменятся, и я довольно часто звоню им во время путешествия пользователя.
По этой причине я думал сохранить их в системе кэша (файл), но, глядя на производительность сети, один и тот же вызов из БД занимает 150 мс, а не один из кэша более 300 мс.
Я на самом деле не беспокоюсь о пользовательском интерфейсе, 150 мс-это ничего (IMHO), но меня беспокоит, сколько вычислений запрашивает сервер. По результатам я понимаю, что кэш более «дорогой», чем БД.
Кто-нибудь знает, так это или нет? Какой из двух вариантов вы бы выбрали?
Спасибо.
Комментарии:
1. Если вы хотите, чтобы это было действительно быстро, вы можете использовать хранилище ключей/значений в памяти, например redis/memcached/APCu или подобное. если скорость на самом деле не имеет значения, то просто используйте то, что для вас проще всего. Я сомневаюсь, что какая-либо из альтернатив вызовет какие-либо реальные проблемы, касающиеся «объема необходимых вычислений». Нет необходимости в микрооптимизации кода, если вы не заметили какой-либо реальной проблемы.
2. Спасибо @MagnusEriksson, но я ищу не более быстрый процесс, а более эффективный для сервера. Вероятно, те, которые вы предложили, также более эффективны, но в моем конкретном случае, какой из них лучше?
3. Довольно трудно сказать, что для вас «лучше», без дополнительного сравнительного анализа. Разные системы ведут себя по-разному (скорость процессора/памяти/скорость файловой системы и т. Д.) Но если у вас на самом деле нет каких-либо проблем, просто выберите то, что проще всего. Следует избегать преждевременной оптимизации.
4. Если эти вещи действительно никогда не изменятся, и вы хотите оптимизировать вещи, то впишите их в свой PHP-код. Нулевая задержка в сети. Я предполагаю, что производительность вашего кэша связана с десериализацией.
5. Спасибо вам, ребята, за ваши ответы. В конце концов я решил сохранить данные в локальном хранилище клиента. Как я уже сказал, это всего 3,3 КБ, и это не конфиденциальные данные.