Есть ли разница в запросах к БД?

28 октября 2019 в 21:20
Аватар пользователя Gopinich Gopinich 0 10

Здравствуйте.
Есть два варианта вывода полей:

  1. Стандартное (print render($content['поле'])
  2. и через views (через Контекстные фильтры по NID выводятся поля в ноду)

Вопрос: есть ли разница в производительности?

Комментарии

Шаблонная темизация априори производительней вьюшной...
Но, на сегодня (конец 2019), даже при ресурсах дешевого хостинга (3$), этой разницы вы не "почувствуете".
Вопрос лишь в skill'ах, поддержке и возможностях. Кому-то первое "роднее", кому-то второе... отсюда и холивары хорошие выходят.

29 октября 2019 в 3:30

Почему только "print render($content['поле']"? Ведь можно практически все элементы сайта так отрендерить. Я не понимаю зачем Друпал тем, кто выводит все программно.

29 октября 2019 в 11:54

VasyOK wrote:
Почему только "print render($content['поле']"? Ведь можно практически все элементы сайта так отрендерить. Я не понимаю зачем Друпал тем, кто выводит все программно.

Просто информации слишком много. И она устаревает. Раньше кричали, что Друпал слишком базу данных дергает сильно. Вот и решил программно может быть вывести?
Но тут сказали, что разницы в 2019 особо нет....

29 октября 2019 в 13:24

Вообще-то, если выводить ноду через стандартный шаблон и если выводить так, как выводит автор, количество запросов в базу не изменится.

29 октября 2019 в 20:05

gun_dose wrote:
Вообще-то, если выводить ноду через стандартный шаблон и если выводить так, как выводит автор, количество запросов в базу не изменится.

Это почему это? По идее views же удвоит запросы?

29 октября 2019 в 20:18

Это скорее к комментарию пользователя VasyOK про "программный вывод". Что касается вьюсов, они нормально кэшируются. Кроме того, запрос ноды с контекстным фильтром даже на огромной выборке займёт очень мало времени.

А вообще, нужно поставить devel и вывести блок со статистикой запросов, чтобы понять их количество и время выполнения.

29 октября 2019 в 20:59

У меня при кэшировании блока на ноде с контекстным фильтром "Кэшировать единожды всё (глобально)" он вообще почему-то перестает выводиться.

29 октября 2019 в 21:45