Anuncios

Bienvenidos sean a este post, hoy veremos un poco sobre como es la estructura de datos de este motor.

Anuncios
Anuncios

Si bien en algunos posts anteriormente comentamos que es InnoDB y algunas caracteristicas que posee hoy nos centraremos mas en su forma de trabajar, ya sabemos que a pesar de figurar como el motor predeterminado de mariadb en realidad lo que utilizamos es XtraDB pero lo hacemos figurar como InnoDB simplemente por un tema de compatibilidad con mysql, las tablas de este motor (InnoDB o XtraDB) son contenidos en espacios de tablas (tablespaces) pero que es esto? Un espacio de tabla es archivo que contiene tanto los datos como los indices para una o mas tablas, en versiones viejas de mariadb y mysql todas las tablas son creadas en espacio de tablas del sistema, para esto tenemos una variable llamada innodb_file_per_table la cual define cuantos archivos se crearan para cada tabla, desde la version 10.0 de manera predeterminada posee el valor de 1, pero al ser una variable dinamica nos permite almacenar algunas tablas en archivos separados y otras en espacio de tablas del sistema.

Anuncios

Los espacio de tablas del sistema de manera predeterminada tambien poseen:

  • Diccionario de datos de InnoDB
  • Los logs de undo
  • El buffer de cambio
  • El buffer de doble escritura
Anuncios
Anuncios

Salvo el primero los otros fueron mencionados en posts anteriores, el primero es una coleccion de metadatos de todas las tablas, columnas e indices, cambiando un poco de tema cuando hablamos de una porcion de un espacio de tabla se lo denomina segmento, por lo general tiene un segmento para los datos y un segmento para cada indice, el de sistema tiene varios segmentos, cuando hablamos de una pagina nos referimos a una pequeña unidad de datos almacenados en espacio de tablas o pool de buffers, tienen un tamaño fijo que puede ser configurado, una pagina que fue modificada en el buffer de cambio se considera una «pagina sucia», y en algunos casos por ejemplo para un proceso de lectura consistente este motor lee de manera secuencial varias paginas juntas con un tamaño total de 1 MB y a estos grupos se lo llama extensiones.

Anuncios
Anuncios

Por ultimo los indices son muy importantes no solo para la lectura sino tambien para los bloqueos, por ejemplo un indice puede ser un indice agrupado o un indice secundario donde las claves primarias (PRIMARY KEY) son indices agrupados pero una tabla si no tiene claves primarias, nuestro primer indice UNIQUE que solo contenga columnas NOT NULL sera utilizado como clave primaria, aunque si tal indice no existe se crea automaticamente un indice agrupado oculto, todas las claves secundarias apuntaran a este indice agrupado oculto.

Anuncios

En resumen, hoy hemos visto como es la estructura de datos del motor InnoDB, hemos visto sus caracteristicas mas importantes, sus componentes y como trabaja algunas cosas, espero les haya sido util sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios

Donación

Es para mantenimento del sitio, gracias!

$1.50