InnoDB mejor MyISAM en #MySQL


Warning: Use of undefined constant jq_syntax_htmlentities - assumed 'jq_syntax_htmlentities' (this will throw an Error in a future version of PHP) in /home/luisper1/public_html/pfc.luisperez.org/blog/wp-content/plugins/jquery-syntax/jquery-syntax.php on line 37

Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/luisper1/public_html/pfc.luisperez.org/blog/wp-content/plugins/ultimate-google-analytics/ultimate_ga.php on line 524

Esta entrada lleva en los borradores más de 6 meses, entre unas cosas y otras no había terminado de redactarla hasta hoy.

Como ya se comentó en otro post, MySQL sería el sistema de gestión de base de datos relacional elegido para utilizar en el proyecto.

En MySQL los dos motores de almacenamiento más comunes son MyISAM (por defecto) e InnoDB:

MyISAM es la tecnología de almacenamiento de datos usada por defecto por el sistema administrador de bases de datos relacionales MySQL. Este tipo de tablas están basadas en el formato ISAM pero con nuevas extensiones. La principal característica de este tipo de almacenamiento es la gran velocidad que obtiene en las consultas, ya que no tiene que hacer comprobaciones de la integridad referencial, ni bloquear las tablas para realizar las operaciones por la ausencia de características de atomicidad. Este tipo de tablas está especialmente indicado para sistemas que no tienen un número elevado de inserciones como pueden ser las páginas web.

Texto extraído de la Wikipedia MyISAM.

InnoDB es una tecnología de almacenamiento de datos de fuente abierta para MySQL, incluido como formato de tabla estándar en todas las distribuciones de MySQL AB a partir de las versiones 4.0. Su característica principal es que soporta transacciones de tipo ACID y bloqueo de registros e integridad referencial. InnoDB ofrece una fiabilidad y consistencia muy superior a MyISAM, la anterior tecnología de tablas de MySQL, si bien el mejor rendimiento de uno u otro formato dependerá de la aplicación específica.

Texto extraído de la Wikipedia InnoDB

Conforme avanzaba en el desarrollo del proyecto tenía que elegir entre uno de estos motores de almacenamiento, en la primera versión utilice MyISAM pero finalmente cambie todas las tablas a InnoDB.

Ventajas de InnoDB:

  • Soporte de transacciones.
  • Bloqueo de registros.
  • Integridad referencial, poder definir Foreign Key Constraints (algo en lo que durante la carrera los profesores insisten una y otra vez en que es muy importante) que mejorán tu modelo Entidad/Relación.
  • Preferencia a los INSERTs, UPDATEs y DELETES.

Desventajas de InnoDB:

  • MyISAM es mucho más rapido que InnoDB a la hora de hacer SELECTs.
  • Con MyISAM más los indices FULLTEXT podemos crear un motor de búsqueda en SQL más potente.

Enlaces:

Acerca de Luis Pérez Alcaide

Es Ingeniero Técnico Informática / Desarrollador Web / SEO / Social Media. Blogger en diarioaborbo.com y podcaster deGuerrilla. En Twitter, LinkedIn y Google+
Esta entrada fue publicada en Desarrollo y etiquetada . Guarda el enlace permanente.