Ventajas y desventajas de MyISAM e InnoDB
Por el 26 de Marzo de 2009
en: Sin categoría
MySql soporta distintas tecnologías de almacenamiento de datos, entre estas destacan MyISAM e InnoDB, el primero de ellos (MyISAM) es el utilizado por defecto pero en la mayoría de los casos podremos cambiarlo cuando queramos.
Documentación de MySQL sobre InnoDB
Documentación de MySQL sobre MyISAM
Ventajas de MyISAM
- Las tablas MyISAM son más simples, por lo tanto si eres nuevo con MySQL o con las bases de datos en general es mucho más recomendable que InnoDB.
- Bloqueo de tablas
- Nos permite tener las características ACID (Atomicity, Consistency, Isolation and Durability: Atomicidad, Consistencia, Aislamiento y Durabilidad en español), garantizando la integridad de nuestras tablas.
- Es probable que si nuestra aplicación hace un uso elevado de SELECT notemos un aumento de rendimiento con respecto a InnoDB.
Ventajas de InnoDB
- Integridad de datos, cuando los contenidos se modifican con sentencias INSERT, DELETE o UPDATE, la integridad de los datos almacenados puede perderse de muchas maneras diferentes. Pueden añadirse datos no válidos a la base de datos, con las tablas InnoDB es más difícil que esto ocurra.
- Mayor velocidad en general a la hora de recuperar datos.
- Recomendable para aplicaciones en las que dominan las sentencias SELECT ante los INSERT / UPDATE.
- Ausencia de características de atomicidad ya que no tiene que hacer comprobaciones de la integridad referencial, ni bloquear las tablas para realizar las operaciones, esto nos lleva como los anteriores puntos a una mayor velocidad.
- Soporte de transacciones
Desventajas de MyISAM
- Las tablas pueden llegar a dar problemas en la recuperación de datos.
- El bloqueo de las tablas cuando se inserta o actualiza un registro es otra posible desventaja ya que el resto de las operaciones quedarán a la espera de la insercción o actualización del registro.
Desventajas de InnoDB
- El diseño de su estructura es mucho más complejo que el diseño de una tabla MyISAM
- No soporta búsquedas full-text, que para conjuntos de datos grandes, es mucho más rápido.
- La última desventaja es su pobre rendimiento en operaciones sencillas como seleccionar datos si lo comparamos con las tablas MyISAM.
La elección es un tema delicado ya que hay que conseguir la mejor relación de calidad acorde con nuestra aplicación, obviamente si necesitamos transacciones, claves foráneas y bloqueos tendremos que escoger InnoDB por el contrario escogeremos MyISAM en aquellos casos en los que predominen las consultas SELECT a la base de datos (un gran número de páginas webs).
Por ejemplo si queremos hacer una tienda online o una aplicación de reserva de vuelos sin duda tendremos que escoger InnoDB que nos asegura mayor integridad de datos.
MyISAM sera la elección adecuada si eres nuevo con MySQL y para aplicaciones webs simples o poco definidas, por poner ejemplos de aplicaciones que deberían utilizar MyISAM: CMS (content management systems), simples motores de búsqueda ó blogs.
- Entradas relacionadas:
No hay coincidencias
9 Respuestas a Ventajas y desventajas de MyISAM e InnoDB
Anónimo
26 de Marzo de 2009 a las 5:32 pm
Yo no conocía InnoDB probablemente por lo que comentais de que es un poco mas complejo, pero me parecen muy interesantes algunas de sus funcionalidades!
Anónimo
27 de Marzo de 2009 a las 4:08 am
Muy pobre
Anónimo
27 de Marzo de 2009 a las 6:41 am
Otro fusilado patrocinado por tufuncion
http://www.sitepoint.com/blogs/2009/03/26/mysql-innodb-table-pros-cons/
http://www.sitepoint.com/blogs/2009/03/25/mysql-myisam-table-pros-con/
Anónimo
27 de Marzo de 2009 a las 11:10 am
jeje venía a decir lo mismo que el primer comentario. Fusilado de sitepoint.
manu
27 de Marzo de 2009 a las 12:33 pm
Anonimo esta realmente pesado con lo de fusilado, ya lo explique hace dos dias, hay una gran diferencia entre fusilar una entrada y escribir sobre lo mismo, ni los puntos coinciden y por supuesto no se trata de una traducción ni mucho menos literal, la verdad es que lo unico que puedo decir es que aportaríais mas si dijéseis algún tema interesante sobre el que escribir y que a vuestro modo de ver no sea fusilado porque hoy en día esta casi todo escrito. Saludos
Anónimo
28 de Marzo de 2009 a las 8:27 pm
¿sabes como no seria un fusilado? si citaras las fuentes.
Anónimo
20 de Abril de 2009 a las 6:33 am
Que triste, que no revisen antes de hacer copy-paste..
Anónimo
20 de Abril de 2009 a las 6:33 am
Que triste, que no revisen antes de hacer copy-paste..
Hector
26 de Enero de 2010 a las 10:34 am
Fusilado no se si estara, pero es incorrecto.
Lo de ACID es de InnoDB no de MyISAM.
En InnoDB dice “Recomendable para aplicaciones en las que dominan las sentencias SELECT ante los INSERT / UPDATE.” y es al reves que predominen los INSERT/UPDATE.
Tambien dice: “Ausencia de características de atomicidad ya que no tiene que hacer comprobaciones de la integridad referencial, ni bloquear las tablas para realizar las operaciones, esto nos lleva como los anteriores puntos a una mayor velocidad.”
Es una traduccion mal hecha y como el autor no tiene NI IDEA DEL TEMA pues no sabe que esta metiendo fallos y gordos.
En fin ..