¿Por qué y cuándo usar "Catálogo plano"?

24

Mientras investigaba un poco sobre la cuestión de la velocidad del sitio web de magento, obtuve algunos enlaces donde la gente dice que habilite "Flat Catalog" para aumentar el rendimiento y la velocidad.

El problema es que por qué no está habilitado de forma predeterminada, la velocidad es un problema.

¿Habilitará el "Catálogo plano" también tuvo algún efecto adverso?

Mi sitio web de magento tenía 100 productos y 500 productos agrupados y la velocidad es bastante problemática ya que estoy cargando 36 productos a la vez.

¿Habilitar "Flat Catalog" resolverá mi problema?

mdeveloper
fuente

Respuestas:

35

La diferencia entre el catálogo EAV y el catálogo Flat es la siguiente:

1. Catálogo Eav

EAV es un modelo de base de datos de valor de atributo de entidad, donde los datos están completamente en forma normalizada. Cada valor de datos de columna se almacena en su tabla de tipos de datos respectivos. Ejemplo, para un producto,

ID del producto se almacena en la catalog_product_entity_inttabla,

nombre del producto en la catalog_product_entity_varchartabla,

precio del producto en catalog_product_entity_decimaltabla,

fecha de creación del producto en la catalog_product_entity_datetimetabla,

Descripción del producto en la catalog_product_entity_texttabla.

EAV es complejo, ya que une 5-6 tablas incluso si desea obtener los detalles de un solo producto.

Las columnas se llaman atributos en EAV.

2. Catálogo plano

El modelo plano usa solo una tabla, por lo que no está normalizado y usa más espacio en la base de datos. Borra la sobrecarga de EAV,

Es bueno cuando se trata de rendimiento, ya que solo requerirá una consulta para cargar el producto completo en lugar de unir 5-6 tablas para obtener solo los detalles de un producto.

Las columnas se llaman campos en modelo plano.

Magento implementó indexadores que consultarán periódicamente las colecciones estándar y completarán tablas de bases de datos planas en el siguiente formato. Donde * es la identificación de la tienda.

catalog_category_flat_store_*
catalog_product_flat_*

Estas tablas tienen datos de productos y categorías no normalizados que están destinados a ser de solo lectura. Esto permite que Magento obtenga datos de categoría y producto en una sola consulta.


Puede habilitar el catálogo plano navegando a System > Configuration > Catalog > Frontend > Use Flat Catalog Category | Use Flat Catalog Product. Establezca esto en sí.

Si está agregando un nuevo atributo en la tabla EAV para el catálogo. Entonces no olvide ejecutar la reindexación (System > Configuration > Index Management). La reindexación actualiza sus tablas de catálogo planas.

Para obtener más información, consulte "EAV" y "Catálogo plano" en Magento

Rohit Kundale
fuente
ok 1: ¿puedo cambiar de plano a eav y de eav a plano en cualquier momento? 2: ¿se pueden agregar columnas dinámicas cuando se usa también plano?
mdeveloper
Sí, puedes cambiar entre ellos. También puede agregar columnas dinámicas. Pero asegúrese de ejecutar la reindexación después de agregar un nuevo atributo a EAV
Rohit Kundale
@RohitKundale: Habilitando el catálogo plano para productos que faltan muchos atributos y, como resultado, no obtengo muchas funciones para los productos. También volví a indexar. ¿Por qué todos los atributos no están indexando columnas dinámicas mientras se habilita el catálogo plano?
Anurag Khandelwal
2
@AnuragKhandelwal Ver aquí
Rohit Kundale
Esto debería haber sido lo primero que me mostraron cuando comencé a usar magento.
Domino
5

Magento utiliza el modelo Entity-Attribute-Value (EAV) para almacenar datos de clientes, productos y categorías en su base de datos. Aunque el modelo EAV le permite tener atributos completamente extensibles para esos objetos, los atributos de los objetos se almacenan en varias tablas en lugar de en una tabla muy grande.

Como los atributos se almacenan en muchas tablas, y eso incluye copias de algunos de los mismos atributos, las consultas SQL pueden ser largas y complejas. La función de catálogo plano crea nuevas tablas sobre la marcha, donde cada fila contiene todos los datos necesarios sobre un producto o categoría.

En versiones anteriores de Magento, era necesario reconstruir el catálogo plano cada vez que realizaba cambios en los atributos del producto o en las asociaciones de categorías de productos. En esta versión, el catálogo plano se actualiza para usted, ya sea cada minuto o de acuerdo con su trabajo cron de Magento.

Las opciones de catálogo plano no solo habilitan el catálogo plano y los indexadores de productos planos, sino que también permiten la indexación de las reglas de precios de catálogo y carrito de compras. Si tiene una gran cantidad de SKU (500,000 o más), Magento puede indexar rápidamente las reglas de precios de catálogo y carrito de compras si habilita la opción de producto de catálogo plano.

Arunendra
fuente
En esta versión, el catálogo plano se actualiza para usted, ya sea cada minuto o de acuerdo con su trabajo cron de Magento. a qué versión te refieres
mdeveloper
Lo siento, no
entiendo
en su opción, refirió la versión actual como 1.9. o magento 2
mdeveloper
1
Depende de usted qué versión es adecuada para usted. Magento 2 tiene más ventaja.
Arunendra
1
@Arunendra mdeveloper pregunta a qué versión de Magento se refiere cuando dice: "En esta versión, el catálogo plano se actualiza para usted". ¿De qué lanzamiento estás hablando? ¿Magento 1.9 lo actualiza por nosotros? ¿Es solo en Magento 2? ¿En qué versión de Magento empezó a actualizarse esto?
Olivier
1

Las categorías planas no se actualizan automáticamente incluso en Magento 1.9.2. No he verificado 1.9.3, ya que siempre reconstruyo manualmente los índices después de las actualizaciones masivas (por ejemplo, nivel de existencias).

Steve Holdoway
fuente