Principales motores de MySQL
InnoDB
- Motor predeterminado desde MySQL 5.5.
- Soporta transacciones ACID (garantiza integridad en operaciones complejas).
- Usa bloqueo a nivel de fila para concurrencia alta.
- Admite claves foráneas (integridad referencial).
- Ideal para aplicaciones con operaciones de lectura/escritura equilibradas (ej: sistemas transaccionales).
- Motor predeterminado desde MySQL 5.5.
MyISAM
- Motor tradicional (antes de MySQL 5.5).
- Sin soporte para transacciones ni claves foráneas.
- Usa bloqueo a nivel de tabla, lo que reduce la concurrencia.
- Más rápido en operaciones de solo lectura o carga masiva.
- Soporta tablas FULLTEXT para búsquedas de texto.
- Motor tradicional (antes de MySQL 5.5).
MEMORY (HEAP)
- Almacena datos en memoria RAM (acceso ultrarrápido).
- Los datos se pierden al reiniciar el servidor.
- Ideal para tablas temporales o caché.
- Almacena datos en memoria RAM (acceso ultrarrápido).
CSV
- Almacena datos en archivos CSV (texto plano).
- Útil para importar/exportar datos con herramientas externas.
- No soporta índices ni transacciones.
- Almacena datos en archivos CSV (texto plano).
Archive
- Optimizado para almacenar grandes volúmenes de datos históricos o sin modificación frecuente.
- Compresión alta para ahorrar espacio.
- Solo permite operaciones de inserción y consulta (no actualizaciones ni borrados).
- Optimizado para almacenar grandes volúmenes de datos históricos o sin modificación frecuente.
Blackhole
- No almacena datos; las operaciones se registran pero no se guardan.
- Útil para replicación o pruebas de rendimiento.
- No almacena datos; las operaciones se registran pero no se guardan.
Federated
- Permite acceder a datos almacenados en servidores MySQL remotos.
- No almacena datos localmente.
- Permite acceder a datos almacenados en servidores MySQL remotos.
NDB (Cluster)
- Usado en MySQL Cluster para entornos distribuidos y alta disponibilidad.
- Soporta replicación y fragmentación automática.
- Usado en MySQL Cluster para entornos distribuidos y alta disponibilidad.
Comandos útiles
- Ver motores disponibles:
sql SHOW ENGINES; - Cambiar motor de una tabla:
sql ALTER TABLE nombre_tabla ENGINE = InnoDB;
¿Cuál elegir?
- InnoDB: Casos generales (transacciones, integridad de datos).
- MyISAM: Lecturas intensivas o si necesitas búsquedas FULLTEXT.
- MEMORY: Datos temporales o caché.
- Archive: Almacenamiento histórico comprimido.