sql >> Base de Datos >  >> RDS >> Mysql

¿InnoDB tiene tablas estáticas?

InnoDB tiene filas de ancho fijo y puede haber alguna ventaja al declarar todas las columnas en una tabla como de ancho fijo. El principal beneficio es que todos los "agujeros" en una página se pueden reutilizar para cualquier inserción, ya que todas las filas tienen la misma longitud. Esto hace que la reutilización del espacio sea algo más eficiente. Sin embargo, no intentaría forzar el ancho fijo para ninguna cadena de unas pocas docenas de bytes, ya que el costo de almacenar los datos adicionales por página (y, por lo tanto, menos filas por página) abrumaría rápidamente cualquier ahorro/ganancia que obtendría de más reutilización eficiente del espacio.

Sin embargo, tener filas de ancho fijo no permitir cualquier optimización del escaneo de filas (como lo hace para MyISAM) en absoluto. El almacenamiento de filas de InnoDB siempre se basa en páginas y utiliza un árbol B+ con listas de páginas con enlaces dobles y registros con enlaces simples dentro de una página. El recorrido de filas siempre usa estas estructuras y no se puede hacer de otra manera.