¿Las vistas se almacenan en caché a través de los mecanismos principales de almacenamiento en caché o debo configurar el almacenamiento en caché directamente en cada vista?

23

Veo que hay configuraciones de caché en cada una de mis vistas. ¿Debo configurarlos o los mecanismos de almacenamiento en caché del núcleo en / admin / config / development / performance hacen algo de esto automáticamente y estas "configuraciones adicionales" en las vistas son si quiero anular el comportamiento de almacenamiento en caché predeterminado del núcleo de drupal?

ingrese la descripción de la imagen aquí

Nigel Waters
fuente
Tengo curiosidad sobre esta pregunta exacta. ¿La configuración de caché específica de Vistas anula la configuración de almacenamiento en caché de rendimiento de Drupal Core? Lógicamente, creo que sería el caso, pero eso no se puede suponer necesariamente.
David Csonka
Empecé una recompensa por esto, porque realmente me gustaría entenderlo mejor.
David Csonka

Respuestas:

38

QUÉ: El almacenamiento en caché de rendimiento central almacena y sirve toda la página renderizada con un ID de caché de la URL. El almacenamiento en caché de las vistas va más allá de esto para almacenar solo la salida de la vista.

POR QUÉ: es ideal para usuarios registrados; otros bloques en la página pueden ser más dinámicos, pero la vista no tiene que ejecutar una consulta cada vez para cada usuario ... solo el usuario ocasional que genera el caché de la página al expirar la vida útil del caché.

AJUSTES: Permitir que la "salida representada" sea más fresca que la consulta es útil para cosas como marcar el contenido como nuevo, de lo contrario, solo combínelos.

GRAN IMAGEN: Drupal sirve la página dinámicamente, usando un servidor para construir páginas en PHP y acceder a una base de datos (o caché en memoria). Esto permite características asombrosas y la velocidad del editor de contenido ... pero la compensación necesita comprender el almacenamiento en caché y hacerlo bien.

MÓDULOS!

También hay un precioso caché contenido Vistas módulo que borra la memoria caché en vistas de edición de contenidos. Si desea ir más allá, también puede consultar las acciones de caché , recomiendo reglas para ajustar esto.

Además, Blockcache Alter le permite configurar las opciones de almacenamiento en caché "por rol", página, usuario, etc. para cada bloque en su sitio.

También puede agregar Administrador de páginas y Paneles . Esto le permite hacer cosas interesantes como configurar el caché "por usuario", "por rol" o una serie de otras configuraciones muy útiles. Aunque personalmente evito los paneles.

DOCUMENTACIÓN: Para el almacenamiento en caché y el rendimiento en general, consulte la página Drupal.org .

doublejosh
fuente
Esta respuesta es realmente buena. Votado a favor. Agregué una sección sobre Administrador de páginas y Paneles, y ahora la respuesta podría estar casi completa.
Letharion
¿Es necesario habilitar Core Performance "Block Caching" para que funcione el almacenamiento en caché específico de Vistas?
David Csonka
Gracias por agregar un poco sobre el Administrador de páginas / Paneles, porque después de agregar la recompensa por esto, me di cuenta de que también sentía curiosidad por el almacenamiento en caché de Mini-paneles. Me preguntaba si Core Performance "Block caching" anula o si se requería que se habilitara para que Mini-Panels "Simple caching" fuera efectivo.
David Csonka
1
De hecho, el almacenamiento en caché de bloque almacenará en caché la salida del bloque independientemente de la configuración de almacenamiento en caché de sus vistas ... igual que el almacenamiento en caché de la página. Si tiene una vida útil de caché de página de 12 horas desconectada, la vista de caché no importa porque esas páginas no se vuelven a procesar, solo se reciben desde la caché.
doublejosh
1
Por el contrario, si habilito el almacenamiento en caché de Core Block, Drupal impondrá las mismas condiciones de almacenamiento en caché en todos mis bloques en todo mi sitio, ¿verdad? ¿Debido a que Core Drupal Block Caching tiene alta prioridad sobre las configuraciones de Bloqueo de Vistas en caché? Eso parece ser solo un buen escenario si no tiene contenido que deba actualizarse de manera consistente.
David Csonka
4

Views utiliza las API de caché de Drupal pero crea su propia caché que no está relacionada con la página normal de Drupal / caché de bloque.

Las vistas almacenan en caché la definición de la vista junto con la vista renderizada. La vista renderizada se puede almacenar en caché de dos maneras, ya sea el resultado de la consulta o el HTML real de la vista. Normalmente desea almacenar en caché el HTML generado, ya que este es el rendimiento más efectivo. En algunos casos en los que desea modificar la salida en función del usuario conectado, el almacenamiento en caché de la consulta también puede ser bastante efectivo.

Las tablas que utiliza Views para almacenar el caché son:

  • cache_views
  • cache_views_data
googletorp
fuente
Entonces, ¿puedo deshabilitar la configuración de almacenamiento en caché de Drupal Core Block en admin / config / development / performance, pero habilitar vistas específicas de caché de visualización de bloques individualmente y todavía tener esas vistas de almacenamiento en caché de bloque funcionan correctamente?
David Csonka
1
@DavidCsonka Sí, puedes hacer eso. El almacenamiento en caché del bloque sería más efectivo que el almacenamiento en caché de la vista, pero solo por un pequeño margen.
googletorp
Ahh, eso es bueno saberlo. Pero, usar solo la configuración de caché de Vistas me daría un control más preciso sobre cómo se almacena en caché el bloque de Vistas, ¿verdad? Si uso el Core Block Caching en su lugar, ¿básicamente impone un conjunto de configuraciones de caché en cada bloque de mi sitio? ¿Correcto?
David Csonka
1
El almacenamiento en caché de vistas (bloque o página) le da control sobre el almacenamiento en caché del conjunto de listas de resultados. El almacenamiento en caché de bloques se trata de la salida de bloque completo. Sí, el almacenamiento en caché de bloque central es una configuración de todo el sitio, pero puede usar la modificación de caché de bloque para alterar eso de forma muy granular por bloque.
doublejosh
3
@doublejosh En Drupal 7 puede definir cómo debería funcionar la caché de bloque, en todo el sitio, por rol, por página, el usuario de la página es la opción que creo. Dado que está almacenando en caché en un nivel superior, es más eficaz en el rendimiento.
googletorp
3

Hay un módulo interesante ahora disponible llamado bully de caché de vistas que almacena automáticamente en caché todas las vistas (resultados de consultas y resultados), excepto las vistas con formularios expuestos. El módulo también le permite excluir manualmente las vistas de su almacenamiento en caché. Esto hace posible establecer el almacenamiento en caché para todas las vistas (excepto las excluidas) desde un punto central.

Dave Bruns
fuente
2

Drupal 7 proporciona almacenamiento en caché de páginas, sin embargo, el almacenamiento en caché de páginas solo funciona para usuarios anónimos y no almacena vistas en caché

Sin embargo, el almacenamiento en caché de vistas funciona tanto para usuarios anónimos como registrados

Guy Schneerson
fuente