Magento 2: ¿Las tablas planas siguen siendo una cosa?

17

¿Las mesas planas siguen siendo algo de lo que debemos preocuparnos en Magento 2? Sé que hay una interfaz de usuario en la que podemos activar las tablas planas, pero no estoy seguro de qué tan bien se han probado, y si aún son necesarias.

Si las tablas planas siguen siendo una cosa, ¿dónde / cuándo se generan y / o regeneran los atributos de las tablas planas? ¿Esto solo sucede al reindexar? ¿O pueden otras acciones de IU desencadenar una generación de tabla plana? ¿Sucede a las php bin/magento setup:di:compile? ¿Otros lugares?

Además, ¿cómo decide Magento si necesita convertir un atributo en un atributo plano? ¿Están todos los atributos EAV aplanados? ¿O hay otros que podrían no ser?

Alan Storm
fuente

Respuestas:

24

Sí, las mesas planas siguen siendo una cosa. Puede habilitar tablas planas para productos y categorías desde tiendas-> configuración-> catálogo-> escaparate. ingrese la descripción de la imagen aquí

¿Por qué necesitamos mesas planas?

Ofrecen un aumento significativo del rendimiento para grandes datos de catálogo. Uno de nuestros clientes tiene solo 5 categorías y alrededor de 250 productos, por lo que realmente no importa si tiene un encendido o apagado. Realmente importaba cuando lo encendimos para otra tienda que tenía 800 categorías y 17000 productos y 5 tiendas múltiples. El aumento del rendimiento se hace evidente cuando comienzas a notar lo que sucede en la base de datos. Así es como se ve la base de datos cuando tiene varios sitios web.

tablas de productos planas para cada tienda

lo mismo para las categorías

El punto es que las uniones se vuelven muy caras con el aumento del tamaño de la tabla incluso con índices. Mesas planas REDUCIR (no eliminar) UNIR.

¿Cuándo se crean o actualizan?

Las tablas planas se regeneran cuando reindexas por completo bin/magento indexer:reindex. Se actualizan en la actualización de producto o categoría. Solo se actualizan las filas relevantes.

Las tablas planas no se generan en setup:di:compile

** ¿Qué atributos van en tablas planas? (y algunas limitaciones) **

La respuesta corta es todos los atributos que se utilizarán en el listado de productos (listado + navegación en capas). La configuración del frente de una tienda de atributos decide si el atributo debe incluirse o no en las tablas planas.

ingrese la descripción de la imagen aquí

Todos los atributos no se aplanan debido a las limitaciones que menciono a continuación.

Limitación de mesa plana

Finalmente, hay una limitación para estas tablas planas impuesta por mysql. Hay límites de tamaño de fila y tamaño de columna en la tabla. Puede leer más sobre esto en los límites de la tabla mysql

Encontrará este <max_index_count>64</max_index_count>nodo interesante en config.xml del módulo-catálogo.

Espero que ayude.

Abhishek Jakhotiya
fuente
2
¿Qué pasa con los pedidos planos? La opción de hacer pedidos planos no está al lado de las de categorías y productos
ahnbizcad
¿Es posible DROPcrear una mesa plana y luego dejar que se cree indexer:reindex? por ejemplo, en caso de que las mesas se estrellaran irremediablemente.
fritzmg
Los pedidos de @ahnbizcad ya son planos. tabla de pedido de ventas.
vitoriodachef
2

Basado en la documentación de magento para la mesa plana mencionada en https://docs.magento.com/m2/ce/user_guide/catalog/catalog-flat.html

Starting with Magento 2.3.0+, the use of a flat catalog is no longer a best practice and is not recommended. Continued use of this feature is known to cause performance degradation and other indexing issues

Sarjan Gautam
fuente
Muchas
0

Las tablas planas ya no son una cosa. No agrega mejoras de rendimiento y quedaría obsoleto en las próximas versiones

bxN5
fuente