1. Добавьте индекс, для поля `query` в таблице `url_alias`. 2. Не считайте количество товаров, в категориях, если в этом нет потребности. 3. Используйте статическую строку datetime SQL запросах, вместо SQL NOW() - это позволит использовать MySQL query cache. 4. Используйте SQL_CALC_FOUND_ROWS чтобы предотвратить тяжелые SQL запросы в ModelCatalogProduct::getTotalProducts Итак, строки, перед которыми стоит "-" нужно удалить. строки, перед которыми стоит "+" нужно добавить. И на всякий случай *.mht файл
Во отличный софт который также поможет разобраться в оптимизации БД http://wmasteru.ru/threads/Оптимизация-mysql-запросов-с-помощью-neor-profile-sql-3-0-6.11777/
А как быть когда товары в 1 категории около 50 тыс нормально грузиться, А когда в эту же категорию добавить под категорию то грузит 4-5минут???