SiZE писал(а): ↑2018.12.03, 23:38
Запрос запросу рознь. Для настроек, как правило делают компонент, который банально кеширует в приватную переменную. И при обращении к ключу сперва проверяет переменную, а потом уже лезет в базу.
1. В Yii есть кэширование запросов, из коробки, настройте для малоизменяемых данных и ... всё.
2. Если параметры запроса постоянно меняются и таких запросов к одной и той же таблице много, а данные всё еще малоизменяемы - тогда, если возможно, кэшируйте всю таблицу во внешний кэш (например redis) и берите данные из него (НО не забудьте про инвалидацию кэша).
3. Если данные в БД подвержены постоянному изменению - то никакой кэш Вам особо не поможет, да это и не страшно - практически любая СУБД специально и создавалась для подобной работы, кстати, читающие транзакции - это идеальный вид нагрузки для БД (которая сама всё и закэширует). Единственное, что могу посоветовать в данном случае - необходимо стараться уменьшить затраты на подключение к БД, например, подключением к БД через файл-сокет (linux).