@cat_crash

Yii cache + Redis: как разгрузить MySQL за счет кеширования данных?

Доброго дня.

Есть огромнейшая БД, в которой миллиарды записей. Есть довольно нагруженый проект написаный на Yii.
Архитектура такова что все данные хранящиеся в базе статичны, т.е. не меняются, а только читаются. В данных очень много связей через JOINы
Хочу немного разгрузить MySQL за счет кеширования данных.

Будет ли работать конструкция типа
Model::model()->cache(3600,null,2)->with('one','two','two.one')->findAllByAttributes(array('attr'=>$value));

Или надо обязательно указывать зависимость? повторяюсь что никакой зависимости кеша как таковой нет. Все данные статичны, просто их огромный объем и выборки довольно сложные засчет связей.
Потестировал на тестовом окружении. В redis/memcache записи появляются, но судя по логам, запросы на сервер все равно уходят.
  • Вопрос задан
  • 2905 просмотров
Пригласить эксперта
Ответы на вопрос 2
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
а вы не пробовали кешировать все на уровне СУБД (подозреваю что вы используете либо mysql либо постгрес, которые неплохо справляются с кешированием сами)? он неплохо кеширует запросы, если памяти много.
Ответ написан
@rowdyro
Есть несколько идей:
1. Некорректно настроен компонент кеширования
2. В БД Yii лезет за схемой таблиц (см schemaCachingDuration)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы