2010-11-22 18 views
19

que lea el siguiente artículo de ayer (http://blogs.sitepoint.com/2010/11/19/mysql-mistakes-php-developers/) y escribió lo siguiente:MySQL - InnoDB vs MyISAM

MySQL tiene una serie de motores de bases de datos, sino que es más probable que encuentre MyISAM e InnoDB.

MyISAM se utiliza de forma predeterminada. Sin embargo, a menos que esté creando una base de datos muy simple o experimental, ¡es casi seguro que es la elección incorrecta! MyISAM no admite restricciones de clave externa o transacciones que son esenciales para la integridad de datos. Además, toda la tabla se bloquea cada vez que se inserta o actualiza un registro: causa un efecto perjudicial en el rendimiento a medida que crece el uso.

La solución es simple: use InnoDB.

Siempre he usado MyISAM porque era el predeterminado. ¿Qué piensas?

Si tuviera que actualizar a InnoDB, en phpMyAdmin, ¿puedo simplemente editar cada tabla y cambiarla a innoDB o hay un proceso más complejo para realizar?

Gracias!

+1

Qué hacer ¿Creo? Eso es un duplicado de [esta pregunta] (http://stackoverflow.com/questions/20148/myisam-versus-innodb) + [este]] (http://stackoverflow.com/questions/225150/are-here -cualquier trampas-cosas-que-necesitas-saber-cuando-cambiar-de-myisam-a-inn). :) –

+1

myisam ya no es el motor predeterminado http://dev.mysql.com/doc/refman/5.5/en/innodb-storage-engine.html. ¿Qué opino acerca de su lógica para elegir una arquitectura/motor basándose únicamente en el hecho de que es la opción predeterminada? ummmm no comment. –

Respuesta

30

Sí, puede cambiar entre motores como la ropa interior usada, si lo desea, sin muchos problemas. Solo cámbialo en phpmyadmin.

Pero no lo cambiaría por el mero hecho de cambiarlo. ¿Necesita usar claves extranjeras? Cambialo. ¿Necesita bloqueo a nivel de fila en lugar de bloqueo de tabla? Cambialo.

Vale la pena señalar que hay buenas razones para usar MyISAM, también. Eche un vistazo a la indexación FULLTEXT. No puedes hacer eso con InnoDB.

ACTUALIZACIÓN

En MySQL 5.6 FULLTEXT se ha implementado para las tablas InnoDB también. Aquí está el manual.

+0

+1 - En este momento no lo cambiaría solo por el hecho de cambiarlo. Solo cámbialo si necesitas las características de InnoDB. Dicho esto, yo mismo no he usado MyISAM en mucho tiempo. – prodigitalson

+1

Uso InnoDB casi exclusivamente. Excepto el otro día cuando necesitaba un índice FULLTEXT. ;) – Stephen

+4

Hmmm tantas opiniones sobre el tema. Creo que voy a empezar con MyISAM, ya que nunca he tenido un problema en los últimos 7 años al usarlo :) –

Cuestiones relacionadas