У меня есть ряд глобальных настроек приложения, которые хранятся в таблице под названием «настройки» в БД.Он имеет три столбца: id, ключ, значение.
Теперь допустим, у меня есть список товаров, в котором перечислены, скажем, 30 товаров.Отображение каждого из этих продуктов требует извлечения определенной настройки «обменный курс» из таблицы настроек.Я сделал это, добавив функцию «exchange_rate» к помощнику приложения, который ищет строку настроек с ключом «обменный курс» и получает значение.
Что теперь не так, спросите вы?Ну, на самом деле ничего, все работает просто отлично, но когда я просматриваю журнал сервера разработки, я замечаю, что в каждом запросе есть 30 таких записей:
CACHE (0.0ms) SELECT settings
. * FROM settings
WHERE(settings
. key
= 'exchange_rate') LIMIT 1
CACHE (0,0 мс) SELECT settings
. * FROM settings
WHERE (settings
. key
= 'exchange_rate')LIMIT 1
Это выглядит ужасно и загромождает мой журнал.Причина очевидна: запись в БД извлекается 30 раз.Кажется, что он не загружается в БД, потому что там написано CACHE, поэтому проблем с производительностью не должно быть (или есть? Я не знаю).
Мой вопрос: будет ли это«чище» и разумнее извлечь эту глобальную переменную (обменный курс) ОДИН РАЗ, а затем сохранить ее где-нибудь (где?), чтобы я не получил эти, казалось бы, избыточные (хотя и кэшированные) запросы БД?