BD InteractivaBase de Datos II · ISFD Mercedes

← Catálogo · Antes: Crear una tabla

Semana 3 · Versión avanzada

Crear una tabla por dentro: el motor y los archivos

Al terminar vas a poderexplicar qué parte del servidor interviene al crear una tabla, qué es un motor de almacenamiento y en cuántos archivos queda la tabla según el motor.

1. El servidor no guarda datos: los guarda un motor

Cuando ejecutás un CREATE TABLE, trabajan dos capas. La capa SQL del servidor entiende la sentencia, revisa la sintaxis y las reglas y anota la definición en el diccionario de datos. Pero no escribe ningún dato: esa tarea es de un motor de almacenamiento, el que indica ENGINE=. Cada motor guarda las tablas a su manera, y eso se ve en el disco.

2. Seguí la tabla hasta el disco

Elegí una tabla y una configuración, y avanzá paso a paso. Fijate qué hace el motor y qué archivos aparecen en la carpeta de la base. Al final, information_schema confirma lo que viste en el disco.

SEMANA 3 · AVANZADO · SIMULACIÓN DIDÁCTICA

Crear una tabla por dentro: el motor y los archivos

Qué se simplifica

Es una simulación con datos de ejemplo: no se conecta a MySQL ni ejecuta SQL real. Los archivos, sus tamaños y las cifras de information_schema son los que dejó MySQL 8.0.30 al crear estas mismas tablas en una instancia temporal. En MySQL 5.7 y MariaDB también aparece un archivo .frm por tabla; el número del .sdi cambia en cada servidor.

Cargando la simulación…Si no aparece, tu navegador tiene desactivado JavaScript, que esta animación necesita.

3. Una tabla, uno o más archivos

Estos son los archivos reales que dejó MySQL 8.0 al crear socios vacía.

ConfiguraciónArchivos en la carpeta de la baseDónde están las filas y los índices
InnoDB, un archivo por tabla (lo normal)socios.ibdTodo junto, en el mismo archivo
InnoDB, todo en ibdata1ningunoDentro de ibdata1, el espacio común del sistema
MyISAMsocios.MYD, socios.MYI y un .sdiFilas en .MYD, índices en .MYI

4. Qué significa cada cosa

Dependen de la versiónLos archivos de la tabla cambian entre versiones: en MySQL 5.7 y MariaDB cada tabla también tiene un .frm con su definición, y en MySQL 8 la definición está en el diccionario de datos (y el .sdi es una copia). Los tamaños dependen del servidor.

5. Autoevaluación

  1. ¿Qué parte del servidor crea los archivos de la tabla: la capa SQL o el motor? ¿Por qué?
  2. Creás una tabla InnoDB vacía y su .ibd pesa 128 KB. ¿Cómo es posible si no tiene filas?
  3. ¿Cuántos archivos tiene una tabla MyISAM y qué guarda cada uno?
  4. Con innodb_file_per_table apagado, ¿qué aparece en la carpeta de la base al crear una tabla?
Ver las respuestas
  1. El motor. La capa SQL entiende y valida la sentencia, pero guardar datos es responsabilidad del motor que indica ENGINE=.
  2. InnoDB reserva páginas de 16 KB desde el principio (en socios, 8 páginas: 128 KB) para la estructura de la tabla y sus índices; no depende de la cantidad de filas.
  3. .MYD (las filas) y .MYI (los índices), más un .sdi con la definición en MySQL 8.
  4. Nada: la tabla se guarda dentro de ibdata1, que ya existía.

Para insertar en el aula

Copiá este código y pegalo en el editor del aula, en la vista de código fuente (HTML). Usa solo atributos, sin estilos, porque el editor del aula suele quitarlos. Incluye allowfullscreen para que el botón de pantalla completa funcione dentro del aula.

Ver el código