Red de conocimiento informático - Conocimiento del nombre de dominio - ¿Cómo entender los dos motores de almacenamiento MySQL comunes? ¿MyISAM e InnoDB?

¿Cómo entender los dos motores de almacenamiento MySQL comunes? ¿MyISAM e InnoDB?

Motor InnoDB: el motor InnoDB brinda soporte para transacciones de bases de datos, bloqueos a nivel de fila y restricciones de clave externa, y está diseñado para manejar sistemas de bases de datos de gran volumen. Cuando MySQL se está ejecutando, InnoDB crea un grupo de búfer en la memoria para almacenar datos e índices. Sin embargo, el motor no admite la búsqueda de texto completo y su inicio es lento. No almacena el número de filas de la tabla, por lo que al ejecutar el comando select count() from table, es necesario escanear toda la tabla. Debido a que la granularidad del bloqueo es menor, las operaciones de escritura no bloquean toda la tabla, por lo que es más eficiente usarla en escenarios de aplicaciones con un alto grado de concurrencia.

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.