5 июня 2015 г., 17:52

вопросы по оптимизации

Доброго времени суток, подскажите в какую сторону копать и нужно ли вообще это делать. Есть сайт, чисто информационный, на самих статьях есть 4 вызова getresources. Это популярные статьи, последние, статьи определенного раздела и еще рандомные статьи с разедла. Эти вызовы в сайдбаре и в конце статьи. Они понятно, что все не кешируемые. Так вот вопрос, не будет 4 вызова сильно нагружать сайт, особенно если будет большой трафик, возможно есть какие-то более быстрые решения.
Они понятно, что все не кешируемые.
А вот это не понятно. А зачем их делать не кешируемыми? С рандомными еще понятно, но остальные-то выборки почему не кешируемые? В чем профит?
А вот это не понятно. А зачем их делать не кешируемыми? С рандомными еще понятно, но остальные-то выборки почему не кешируемые? В чем профит?
Дело в том, что популярные статьи и последние — так же обновляются, например добавилась статья в раздел — и нужно, что бы она сразу появлялась в последних, а популярные также могут меняться, в зависимости количества просмотров статей. Я почему-то думал, что если кешировать вызовы — то они не будут обновляться, а только после очистки кеша. Я потому и спрашиваю, что может какие-то решения еще предложите.
например добавилась статья в раздел — и нужно, что бы она сразу появлялась в последних,
Это и будет сразу обновляться после добавления (создания) новости.
а популярные также могут меняться, в зависимости количества просмотров статей.
С этими да, надо делать некешируемыми, так как при обновлении кол-ва просмотров как правило кеш не сбрасывается. Это при создании документов кеш сбрасывается (и то не весь, но достаточно, чтобы кешируемые вызовы сбросились).
По сабжу: ничего более быстрого на замену некешируемым вызовам не придумать, так как они должны быть у вас не кешируемые. Другое дело, что вы можете использовать какой-нибудь кеш-акселератор (тот же getCache), чтобы установить временные интервалы для вызова некешируемых сниппетов. К примеру, каждый час, или пол-часа. Тогда у вас не будет при каждом заходе вся логика отрабатываться.
А вообще оптимизируйте свои SQL-запросы, чтобы даже не из кеша все быстро отрабатывалось.
спасибо — это то, что нужно было

Добавить комментарий