¿Cuándo debo usar la opción de tabla plana de categoría?

16

Como seguimiento a una pregunta anterior, me gustaría saber:

¿Cuándo debo usar la opción de tabla plana de categoría?

Mientras busqué en Google, encontré un consejo para habilitarlo " cuando tienes muchas categorías ". Pero que es mucho ?

Puedo entender fácilmente que activar tablas planas para productos es una buena decisión en términos de rendimiento, pero ¿es realmente tan importante para los catálogos?

¿Y qué implicaciones concluyen de esto? Me acabo de enterar de que habilitar tablas de categorías planas no permite guardar posiciones de productos de categoría. Al menos no es tan fácil como sin la opción plana (gracias a Marius por su ayuda). ¿Hay alguna otra cosa que se pueda mencionar?

Gracias por adelantado :)

Celldweller
fuente

Respuestas:

10

Si tiene instalado PHPMyAdmin en su servidor, puede echar un vistazo a las tablas de Magento. Verás que hay muchos que comienzan con catalog_product_...y catalog_category_....

Todos estos se utilizan para cada producto y categoría, lo que significa muchas consultas complicadas y pesadas para cada página que llama.

Para aligerar la carga en MySQL y acelerar su tienda, Magento ofrece mesas planas. Por ejemplo catalog_product_flat_1. Si observa la estructura de esta tabla, verá que tiene muchos datos básicos del producto, lo que significa que, por ejemplo, en la lista de categorías de productos, solo se debe ejecutar una consulta en esta tabla en lugar de consultar el varias otras tablas que contienen los datos del atributo.

Sin embargo, estos datos se agregan a partir de los datos de las otras tablas, lo que significa que cada vez que guarda un producto, se actualizan varios indexes( System > Configuration > Index Management) para compilar los datos de este producto. En algunos casos, como por ejemplo, mientras se desarrolla, esto puede ser innecesario. Desea ver todos los cambios de inmediato a pesar de que el tiempo de carga de la página puede llevar un tiempo.

En conclusión, cada vez que inicie una tienda al público, actívela y, cuando programe, intente no utilizar productos completos o objetos de catálogo, sino que utilice los datos proporcionados por los índices planos.

Sander Mangel
fuente
Creo que siempre activaría tablas de productos planos en un entorno productivo. Pero no estaba tan seguro acerca de las tablas de categorías planas. ¿Entonces dices que siempre activarías ambos? ¿Independientemente de cuántos catálogos tenga?
Celldweller
Siempre actívelos, cuantas más categorías, mayor será el beneficio, por supuesto, pero incluso cuando solo tiene 10 categorías, seguirá ahorrando un par de consultas.
Sander Mangel
44
Siempre debe activar entidades de catálogo planas, pero en teoría hay un caso en el que no funciona. Esto sucede cuando tiene muchos atributos utilizados en la lista de productos y supera el límite máximo de filas de mysql. Lo he visto suceder solo una vez antes. No necesita preocuparse mucho, pero en caso de que ocurra, sabrá por qué.
Marius
@Celldweller, ¿podemos proporcionar más información sobre su pregunta?
Sander Mangel
0

Si tiene muchas categorías o muchos atributos personalizados para categorías, es una buena opción debido a la complejidad reducida de la consulta. Tenga en cuenta que la carga pesada se beneficia aún más de ella. El principal inconveniente es que las categorías y las categorías planas utilizan una interfaz muy diferente, por lo que a menudo el código debe ser muy cuidadoso en el caso de las categorías planas habilitadas.

Nils Preuß
fuente
Ahí están de nuevo. Mucho y muchos. ;-) Entonces, ¿también dirías "depende de"? ¿Activaría tablas de categorías planas cuando tenga 10 catálogos? O 50? ¿Es posible dibujar una línea?
Celldweller
Es necesario saber cuáles son los casos con algún ejemplo para los cambios de código que se deben tener en cuenta al habilitar el catálogo plano.
Anurag Khandelwal