Приветствую специалистов по кешированию и архитектуре Drupal.
Можете объяснить так работает кеширование в views. В документацию конечно можно ссылку кинуть, но хотелось бы максимально простым языком. Чтобы и неофиты понимали.
Для начала что такое: Результат запроса и Обработанный вывод
? Когда какие значения использовать?
Комментарии
мне тоже всегда было интересно. почему есть 2 вида кэширования
Вроде как, результат запроса, это то, че пишет база данных, то есть какая-то инфа без оформления. А отображаемый вывод - это значит уже берут эти сырую инфу и варят до пригодного состояния
Другое дело. а как одно без другого. Можно отображаемый вывод кэшировать дольше? но смысл? Вьюха к базе запрос сделать сделает, а отображаемый вывод так и будет показывать старый? В чем цимес
Или наоборот, отображаемый вывод кэшировать меньше? тогда вьюха возьмет текущий "результат запроса" и "доварит" и покажет ровно тоже самое. То есть нет смысла отображаемому выводу ставить меньшее время кэша
(а еще можно кэшировать весь блок.... кэшированию блока вообще плевать на сложности вьюхи?, у него свое кэширование То есть, поставил 5 минут для Результат запроса и Отображаемый вывод, а у кэширования блока стоит 1 час (точнее настройки кэша сайта глобальные).. И блок будет обновлять раз в час.
А если крон раз в 3 часа, то и кэш вроде не почистится...
Короче, намудрили. Ох, простите. Это называеться "ГИБКОСТЬ"
Query Results Caching
Необработанные результаты запроса, которые следует кэшировать как минимум на 1 минуту. Зная Ваш сайт вы лучше всех знаете, как часто должен меняться ваш контент в определеном месте Views
Rendered Output Caching
Сгенерированная разметка, которую следует кэшировать как можно дольше (если запрос изменится, вывод будет обновлен).
Block Caching
Если вы создаете блок, будет пременен кэш block встроеный в ядро Drupal
Drupal 7
для кэширования всех запросов
https://drupal.org/project/views_cache_bully
Drupal 8
кэши через теги сделаны, и тем самым снова появились новые +сы но и новые минусы )
https://www.drupal.org/project/views_custom_cache_tag
При возможности рекомендую попробовать Varnish (нужно иметь возможность на сервер поставить)
и это будет очень крутой + к производительности.
Идеально Varnish + Nginx
Менее идеально(в основном так пользуюсь) Nginx + Varnihs + Nginx
Еще менее идеально Nginx
Совсем не идеально Apache )
Grenuy, спасибо, что ответили. Пока я хотел вынести на повестку дня вопрос о том, что встроено в views. Без сторонних модулей. Иначе можно будет диссертацию писать. Вот вы выделили жирным:
Query Results Caching
Rendered Output Caching
Block Caching
Можно эти понятия как-то попроще объяснить? И если включены первые 2, имеет ли смысл включать Block Caching?
Block caching кэширует блоки если они есть. В целом если можно без блока то вообще не нужно и не юзай блоки.
А еще для понимания это все конечно здорово и нужно, если возникают проблемы.
на простом шаред хосте друпал спокойно держал нагрузку в 10-15тыс уников без никаких кэшей.
С кэшами прийдут вопросы что что то поправил, а оно не поправилось. Так же могут быть проблемы с динамичными данными для разных пользователей.
К тому ради фана можно конечно поиграться и поучиться. А ради дела то сайт должен быть достаточно нагружен. Или же данные очень сложные в запросах которые нужно будет подумать и как то оптимизировать при возможности, ну и в конченом итоге кэши )
Короче кэши облегчают жизнь, но прежде чем к ним обращаться нужно все оптимизировать без кэшей.
и обратное верно. Если хостинг дохлый, то хоть обвешайся кэшами. Будет то одно, то другое тормозить
p.s. простой шаред он очень разным бывает.
А еще кэши вьюх в 7-ке не чистились. Как сейчас обстоит- не знаю. Один у меня сайтег есть мелкий, у него посещалка 150 чел в день. База разрастается на 8гб
Это там где собираешь статистику по каждом посищению?
модуль статистика включен на каждом сайте
Ну вот поэтому и роздувается так как нужно выглядеть каждого посетителя записать, чем Гугл аналитика или Яндекс метрика не устраивает не понятно. На крайняк цели прописать. Но это другая история ))
чувак, ну че ты чушь то пишешь. Причем тут модуль статистика и кэш вьюх?
ну да, ты показал свою некомпетентность в другой теме. Но сюда зачем это подтягивать?
1. В чем показал не компетентность? Кажется человек сейчас хоть что то находит как раз из за моих подсказок.
2. Статистика притом что база твоя растет из за кэшей или из за статистики, помню у тебя был запрос, где удивлялся почему база растет когда каждого пользователя записываешь в базу.
3. А свою некомпетентность показываешь через один комментарий, ссылаючись на то что "вот как тут все плохо, а в ВП хорошо, я в ВП работать не буду, но там где работаю все плохо, и вообще композер ужас"
Прошу не утверждаться за счет меня. И поправить свою речь, так как никто никому не грубил, и в том числе тебе подсказывал в твоих проблемах.
Не обращай лучше просто.
Когда сказать нечего по теме - начинают на личности переходить.
в том, что предлагаешь менять гугл-аналитикс на стандартный модуль статистика. Хотя у модуля статистика есть больше функций. Я уже приводил в пример, отображение популярных материалов за неделю вьюхой. Как тут внешние сервисы аналитики могут? да никак
База растет из-за кэшей вьюх. Я про это и писал. Причем тут модуль статистики? Думаешь таблица модуля статистик так растет? от того, что единички добавляются напротив нод? Это ты настолько компетентный?
да тут все плохо, а в ВП хорошо. Надо примеры? модуль симплньюс застрял банально, нет у них (создателей) времени, сил и денег. А модуль для рассылки в ВП - цветет и пахнет. Модуль для яндекс-турбо - нет вообще, ни под 7-ку, ни под 9-ку тем более. Чуваки 4 года обсуждают в ишью темы "Бустрап" перевод с третьего бустрапа на 4-й. Вместо того, чтобы сделать одну хорошую тему на бустрапе4, на орге есть несколько и все недоделанные. Зато каждый ментейнер рассказывает, почему его тема лучше.
Композер - лишняя сущность.
Валерий, изыди плз. Дай другим специалистам высказать свое мнение. Ты тут не единственный гуру разработки.
да ради бога, такие спецы, что хоть стой, хоть падай