Уменьшение кличества SQL-запросов путем CI-кэширования

Рубрика: MaxSite CMS -> Основы
Среда, 14 января 2009 г.
Просмотров: 2782
Подписаться на комментарии по RSS
]]>
]]>

Для того, чтобы еще больше уменьшить количество SQL-запросов, можно применить встроенное в CodeIgniter кэширование. Для этого нужно в файле database.php изменить строчки:

  1.  $db['default']['cache_on'] = TRUE;
  2.  $db['default']['cachedir'] = "system/cache/db";

В каталоге кэша «system/cache» нужно сделать подкаталог «db» и выставить на него права 777 (разрешение на запись). После этого CodeIgniter будет автоматически кэшировать SQL-запросы. По моим тестам это меньше на 3-5 запросов на страницу.

Следует учитывать, что CodeIgniter кэширует такие запросы целиком, поэтому размер файлов получается довольно большой. У меня на тестовой сайте получилось более 10Мб. Кроме этого, поскольку в CodeIgniter кэш более простой, чем в MaxSite CMS, то могут накапливаться старые файлы. Так что придется вручную периодически подчищать каталог «db».

Думаю, что дополнительное кэширование пойдет на пользу высокопосещаемым сайтам. Для небольших сайтов, скорее всего «родного» MaxSite CMS кэширования будет достаточно.

]]>twitter.com Google Buzz google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru]]>

Комментариев: 11

  1. 2009-01-14 в 12:37:51 | Евгений Самборский

    Надо будет попробовать.

    Кстати еще не пробовал ни родное кеширование и CI.

    Макс, в двух словах можете сказать как именно кеш CI работает?

    Он сохраняет результаты запроса select на некоторое время? Как-то смотрит он, происходили ли изменения в таблицах?

    p.s. Макс, проверьте пожалуйста есть ли в базе юзер с мыло [затер]. Свой пароль четко помню, но не пускает давно

  2. 2009-01-14 в 12:55:56 | Максим
    ]]>]]>

    Да, есть такой: http://max-3000.com/users/60 пароль можно восстановить.

  3. 2009-01-14 в 14:02:28 | Евгений Самборский
    ]]>]]>

    А вот и я, восстановил доступ.

    Макс, по кешированию можете дать ответ?

  4. 2009-01-14 в 14:21:34 | Максим
    ]]>]]>

    Схема кэширования CodeIgniter примерно такая же, как и в CodeIgniter. Я именно оттуда и взял функции и их переделал. Разница в том, что у меня ключ можно менять, время указать свое. Ну и главное, что у меня решен вопрос с автоочисткой кэша - раз в сутки он принудительно сбрасывается и нет захламления старыми файлами.

    По select ничего не скажу. Я детально кэшированием запросов не занимался, но вижу, что у него есть проблемы: например новые комменты не появляются, пока кэш не сбросится. В принци пе решить можно путем принудительного сброса CI-кэша в MaxSite CMS.

  5. 2009-01-17 в 00:57:48 | Denis

    Кэш очень криво работает, особенно когда в админке сохраняю настройки по с выборкой скина.

  6. 2009-01-17 в 15:30:22 | Максим
    ]]>]]>

    Добавлю в свою функцию очистки кэша еще и очистку CodeIgniter sql-запросов. Пока тестирую, но вроде работает нормально.

  7. 2009-01-18 в 02:39:42 | welll
    ]]>]]>

    У меня вроде все и так нормально

  8. 2009-03-06 в 09:59:02 | Рамир
    ]]>]]>

    Я смотрю в версии 0.3 уже есть сброс CodeIgniter кеша.

  9. 2009-03-07 в 23:46:36 | Комментатор 96
    ]]>]]>

    "CodeIgniter" - это что?

  10. 2009-03-08 в 00:09:32 | Wave
    ]]>]]>
    "CodeIgniter" - это что?
    Вам это не важно. Фреймворк такой.

  11. 2010-04-24 в 15:22:14 | jester
    ]]>]]>
    Схема кэширования CodeIgniter примерно такая же, как и в CodeIgniter.

    Капитан очевидность grin

    А за статью спасибо grin есть правда ряд вопросов, но буду сам ковыряться )

Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email.
(При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д.)



grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

(обязательно)