Кешировать запросы MySql в OpenCart можно по разному, хоть в файлы, хоть куда. Решения есть и столько же подходов. Давненько клиенту нужно было закешировать запросы OpenCart в Redis в итоге делал решение, которое оставляю тут "как есть" (нашел у себя.. но возможно не закончено.. уже не помню) 0. Подключаем хранилище Redis на хостинге. У многих есть, я пользуюсь Бегет, поэтому оставлю ссылку на их инструкцию https://beget.com/ru/kb/how-to/services/ispolzovanie-redis 1. Файл из архива кидаем в system\library\db 2. Редактируем config.php в строке Код: define('DB_DRIVER', 'mysqli'); меняем на redis Готово. Теперь о принципе работы. Она по сути одинакова для всех кешеров. 1. Формируем из SQL запроса id ключ. Конечно формируем если видим запросы SELECT подходящее под условия. 2. Если в хранилище Redis есть данные для данного ключа, то получаем их. Если нет, то записываем.
А в опенкарте есть дефолтный кеш sql Если про стандартный кеш данных, то их то не много, разницы в скорости не будет особо заметна. Но если что то свое, то при большом кол-ве redis должен выиграть в скорости. Я данное решение по кешу sql тестировал на магазине с 30т товарами и много категориями и прирост в скорости был и нагрузка на бд тоже снизилась. Если редиса нет на хостинге и разбираться с кешированием нет желания, то я тут про рекламирую модуль https://shop.opencart-russia.ru/imdboptimizer3 Там уже все сделано заранее и в большинстве случаев работает сразу без настроек.