Для того, чтобы еще больше уменьшить количество SQL-запросов, можно применить встроенное в CodeIgniter кэширование. Для этого нужно в файле database.php изменить строчки:
$db['default']['cache_on'] = TRUE;
После этого CodeIgniter будет автоматически кэшировать SQL-запросы. По моим тестам это меньше на 3-5 запросов на страницу.
Следует учитывать, что CodeIgniter кэширует такие запросы целиком, поэтому размер файлов получается довольно большой. У меня на тестовой сайте получилось более 10Мб. Кроме этого, поскольку в CodeIgniter кэш более простой, чем в MaxSite CMS, то могут накапливаться старые файлы. Так что придется вручную периодически подчищать каталог «db».
Думаю, что дополнительное кэширование пойдет на пользу высокопосещаемым сайтам. Для небольших сайтов, скорее всего «родного» MaxSite CMS кэширования будет достаточно.
Комментариев: 11 RSS
1Евгений Самборский14-01-2009 10:37
Надо будет попробовать.
Кстати еще не пробовал ни родное кеширование и CI.
Макс, в двух словах можете сказать как именно кеш CI работает?
Он сохраняет результаты запроса select на некоторое время? Как-то смотрит он, происходили ли изменения в таблицах?
p.s. Макс, проверьте пожалуйста есть ли в базе юзер с мыло [затер]. Свой пароль четко помню, но не пускает давно
2Максим14-01-2009 10:55
Да, есть такой: http://max-3000.com/users/60 пароль можно восстановить.
3Евгений СамборскийСайт14-01-2009 12:02
А вот и я, восстановил доступ.
Макс, по кешированию можете дать ответ?
4Максим14-01-2009 12:21
Схема кэширования CodeIgniter примерно такая же, как и в CodeIgniter. Я именно оттуда и взял функции и их переделал. Разница в том, что у меня ключ можно менять, время указать свое. Ну и главное, что у меня решен вопрос с автоочисткой кэша - раз в сутки он принудительно сбрасывается и нет захламления старыми файлами.
По select ничего не скажу. Я детально кэшированием запросов не занимался, но вижу, что у него есть проблемы: например новые комменты не появляются, пока кэш не сбросится. В принци пе решить можно путем принудительного сброса CI-кэша в MaxSite CMS.
5Denis16-01-2009 22:57
Кэш очень криво работает, особенно когда в админке сохраняю настройки по с выборкой скина.
6Максим17-01-2009 13:30
Добавлю в свою функцию очистки кэша еще и очистку CodeIgniter sql-запросов. Пока тестирую, но вроде работает нормально.
7welllСайт18-01-2009 00:39
У меня вроде все и так нормально
8РамирСайт06-03-2009 07:59
Я смотрю в версии 0.3 уже есть сброс CodeIgniter кеша.
9Аноним07-03-2009 21:46
"CodeIgniter" - это что?
10WaveСайт07-03-2009 22:09
11Аноним24-04-2010 13:22
Капитан очевидность :-)
А за статью спасибо :-) есть правда ряд вопросов, но буду сам ковыряться )