mysql - transacciones - myisam vs innodb ventajas
Cuándo usar MyISAM e InnoDB? (2)
Lea sobre los motores de almacenamiento .
MyISAM:
El motor de almacenamiento MyISAM en MySQL.
- Más simple de diseñar y crear, por lo tanto, mejor para los principiantes. No se preocupe por las relaciones extranjeras entre tablas.
- Más rápido que InnoDB en general como resultado de una estructura más simple, lo que reduce los costos de los recursos del servidor. - Mayormente ya no es cierto.
- Indización de texto completo. - InnoDB lo tiene ahora
- Especialmente bueno para tablas de lectura intensiva (select). - Mayormente ya no es cierto.
- La huella de disco es 2x-3x menos que InnoDB. - A partir de la Versión 5.7, esta es quizás la única ventaja real de MyISAM.
InnoDB:
El InnoDB almacenamiento InnoDB en MySQL.
- Soporte para transacciones (brindándole soporte para la propiedad ACID ).
- Nivel de fila de bloqueo. Tener un mecanismo de bloqueo de grano más fino le da una mayor concurrencia en comparación con, por ejemplo, MyISAM .
- Restricciones de clave foránea Permitiéndole dejar que la base de datos garantice la integridad del estado de la base de datos y las relaciones entre las tablas.
- InnoDB es más resistente a la corrupción de tablas que MyISAM.
- Soporte para grandes grupos de búferes para datos e índices. El buffer de teclas MyISAM es solo para índices.
- MyISAM está estancado; todas las mejoras futuras estarán en InnoDB. Esto quedó muy claro con el lanzamiento de la Versión 8.0.
Limitaciones de MyISAM:
- Sin claves externas y eliminaciones / actualizaciones en cascada
- Sin integridad transaccional (cumplimiento ACID)
- Sin habilidades de reversión
- 4,284,867,296 límite de fila (2 ^ 32) - Este es el valor predeterminado anterior . El límite configurable (para muchas versiones) ha sido de 2 ** 56 bytes.
- Máximo de 64 índices por mesa
Limitaciones de InnoDB:
- Sin indexación de texto completo (debajo de 5.6 versión de mysql)
- No se puede comprimir rápidamente, solo lectura (5.5.14 introdujo
ROW_FORMAT=COMPRESSED
) - No puedes reparar una tabla InnoDB
Para una comprensión breve, lea los enlaces a continuación:
Esta pregunta ya tiene una respuesta aquí:
- MyISAM versus InnoDB 27 respuestas
MyISAM está diseñado con la idea de que su base de datos se consulta mucho más de lo que se actualiza y, como resultado, realiza operaciones de lectura muy rápidas. Si su ratio de lectura para escribir (insertar | actualizar) es inferior al 15%, es mejor utilizar MyISAM.
InnoDB utiliza el bloqueo de nivel de fila, tiene funciones de compromiso, retrotracción y recuperación de fallos para proteger los datos del usuario. Admite transacciones y tolerancia a fallas
arriba las diferencias son correctas entre MyISAM e InnobDB? por favor guía si hay otras limitaciones para MYISAM e InnobDB. ¿Cuándo debería usar MyiSAM o cuándo Innodb? ¡Gracias!
Use MyISAM para datos sin importancia o si realmente necesita esas ventajas mínimas de rendimiento. El rendimiento de lectura no es mejor en todos los casos para MyISAM.
Personalmente nunca más usaría MyISAM. Elija InnoDB y arroje un poco más de hardware si necesita más rendimiento. Otra idea es mirar los sistemas de bases de datos con más características como PostgreSQL, si corresponde.
EDITAR : para el rendimiento de lectura, este enlace muestra que innoDB a menudo no es más lento que MyISAM: http://www.mysqlperformanceblog.com/2007/01/08/innodb-vs-myisam-vs-falcon-benchmarks-part-1/