¿Cómo entender los dos motores de almacenamiento MySQL comunes? ¿MyISAM e InnoDB?
Motor MyIASM: el motor predeterminado de MySQL no proporciona soporte para transacciones, ni admite bloqueos a nivel de fila ni claves externas. Por lo tanto, al ejecutar instrucciones de inserción y actualización (es decir, realizar operaciones de escritura), es necesario bloquear la tabla, lo que reduce la eficiencia. Sin embargo, a diferencia de InnoDB, el motor MyIASM guarda el número de filas en la tabla, por lo que al ejecutar una instrucción select count() de la tabla, el valor guardado se puede leer directamente sin escanear toda la tabla. Por lo tanto, si una tabla se lee más de lo que se escribe y no necesita soporte para transacciones, puede usar MyIASM como su motor de base de datos preferido.
MyISAM es el motor de base de datos predeterminado para MySQL (anterior a la versión 5.5). Aunque tiene un rendimiento excelente y proporciona una gran cantidad de funciones, incluida la indexación de texto completo, la compresión, funciones espaciales y más, MyISAM no admite transacciones ni bloqueo a nivel de fila, y su mayor desventaja es que no puede recuperarse de forma segura de un chocar. Sin embargo, después de la versión 5.5, MySQL introdujo InnoDB (motor de base de datos de transacciones) y el motor de almacenamiento predeterminado después de la versión 5.5 de MySQL es InnoDB.
La mayoría de las veces utilizamos el motor de almacenamiento InnoDB, pero en algunos casos, MyISAM también es adecuado, como en situaciones de lectura intensiva.