En algunas bases de datos, la primera decisión que hay que tomar es decidir si el motor de la base de datos va a ser MyISAM o InnoDB. Este es el caso, por ejemplo, de MySQL. A partir de la versión 5.5 de MySQL, el motor por defecto es InnoDB, pero también puede usarse MyISAM, así que es interesante saber en qué se basan.
A continuación una lista de las principales características de cada motor, para poder comparar mejor MyISAM vs InnoDB y ver las ventajas y desventajas de MySQL con cada motor.
Características de MyISAM
- Bloqueo a nivel de tabla. Si hay actualizaciones (UPDATE) de registros, bloquea la tabla entera, lo cual es más ineficiente.
- Si se realiza una gran cantidad de consultas (SELECT), el rendimiento es más elevado. Por lo tanto, se puede decir que tiene una mayor velocidad al recuperar datos.
- En caso de errores, las tablas pueden dar problemas en la recuperación de datos. Una de las claves para ganar rendimiento viene dado por esta peor gestión de la recuperación ante errores.
- Permite hacer búsquedas full-text, las cuales son más precisas que las búsquedas con like.
- Menos consumo de recursos (memoria RAM).
- Ausencia de características de atomicidad. No tiene comprobaciones de integridad.
Características de InnoDB
- Bloqueo a nivel de registro. Lo cual es más eficiente que a nivel de tabla, ya que se permite que otras transacciones trabajen con el resto de registros.
- Soporte de transacciones.
- Mayor rendimiento para operaciones de inserción y actualización (INSERT/UPDATE).
- Mejor respuesta a la concurrencia.
- Más confiabilidad, al tener características ACID (Atomicidad, Consistencia, Aislamiento y Durabilidad. Esto también repercute en una mejor integridad de los datos.
- Mejor recuperación de errores a partir de sus logs.
- A partir de mySQL 5.6, también permite búsquedas full-text.
MyISAM vs InnoDB
Si aún así estás indeciso sobre qué motor de base de datos elegir, quizás estás cuestiones te puedan ayudar a decidir.
- Un solo gestor para una plataforma que requiera muchas consultas (SELECT): MyISAM.
- Se requieren muchas modificaciones de los datos (INSERT/UPDATE/DELETE): InnoDB.
- Más velocidad con pocos recursos (RAM, disco, etc.): MyISAM.
- Varios gestores de mantenimiento: InnoDB.
- Se utiliza un diseño relacional de base de datos: InnoDB.
- Es necesario una buena integridad de datos y recuperación ante errores: InnoDB.
- Necesitas búsquedas full-text: A partir de MySQL 5.6, ambos pueden realizarlas.
Espero que con estos datos sea más fácil por cuál decidirte. Sin embargo, siempre se puede probar ambos y entonces decidir, aunque con esta comparativa nos aporte razones más sólidas.
Hola!
Gracias por en post, despeje algunas dudas.
Te quería preguntar acerca de: ¿que es o que son los gestores de mantenimiento?
Gracias.