2009-12-28 11 views
9

La gente dice que InnoDB no es tan rápido como MyISAM. Pero, ¿cuánto más lento? Solo como una regla empírica en el viento, por supuesto. Quiero decir ... ¿suele ser 0.5 veces más rápido que MyISAM? o peor? ¿O el visitante promedio no reconoce ninguna diferencia temporal cuando navega por una plataforma MyISAM versus lo mismo con InnoDB?¿Cuánto más rápido se compara MyISAM con InnoDB?

+0

000webhost solo permite MyISAM y no permite InnoDB porque "pone una gran carga en sus servidores" ... eso puede decir algo. – Pacerier

Respuesta

7

Me sorprendería mucho si notara alguna diferencia práctica en el mundo real a menos que esté ejecutando un sitio web muy extenso/con gran cantidad de recursos.

Existen algunos puntos de referencia (aunque bastante antiguos) (here por ejemplo), pero obviamente su experiencia diferirá dependiendo de su patrón de uso específico.

+0

enlace roto: http://tag1consulting.com/MySQL_Engines_MyISAM_vs_InnoDB – jbobbins

+0

@jbobbins Purged. :-) –

3

Puede ser una gran diferencia que depende de cómo uses la base de datos en cuestión. Por ejemplo, las consultas de conteo selecto (*) son baratas cuando se ejecutan en una tabla myisam pero (pueden ser) realmente lentas cuando se ejecutan en una tabla innodb. Además, mucha gente no configura su instalación para un rendimiento innodb, especialmente si están acostumbrados a myisam, que funciona bastante bien en una instalación mysql bastante predeterminada.

Mi consejo sería ejecutar sus propias pruebas tomando algunas consultas principales y ejecutarlas en las tablas myisam y luego en las versiones innodb. Visite también http://www.mysqlperformanceblog.com/ para obtener consejos sobre cómo optimizar innodb para obtener el máximo provecho.

1

Esto es una gran generalización, pero debe comprender que cuando utiliza InnoDB, el db comprueba constantemente las restricciones, el rendimiento real dependerá de la cantidad de comprobaciones de contratiempos que deba realizar en las inserciones y actualizaciones. también debe tener en cuenta la distribución de consultas en su base de datos, el 90% selecciona, el 10% inserta/actualiza consultas. un 10% de rendimiento con insertos de inserción, no es particularmente grande. Ahora, si su base de datos es de escritura intensiva, podría considerar usar MyISAM. Recuerde, MyISAM no es compatible con ACID, por lo que no tiene garantía de integridad de los datos, esto significa que no se verificará la clave foránea, ni se realizarán transacciones.

Saludos

+1

¿Qué MyISAM no garantiza filas únicas? – Pacerier

+0

¿Por qué MyISAM para escribir intensivo? Yo diría que InnoDB tiene la ventaja con el bloqueo de nivel de fila. – NateS

+0

En el momento de escribir en 2009, las cosas eran bastante diferentes en el ecosistema mysql: D – mhughes

1

Dependiendo de su modelo de carga MyISAM no pueden ser más rápido en absoluto. Por ejemplo, InnoDB puede hacer el bloqueo a nivel de fila, mientras que MyISAM solo es compatible con el bloqueo a nivel de tabla. Esta característica particular puede darle a InnoDB una ventaja significativa bajo carga que involucra muchas actualizaciones concurrentes a diferentes partes del mismo conjunto de tablas.

Así que realmente no se puede generalizar. En su lugar, más se imagina qué carga va a tener, y luego investiga el tema desde este ángulo. O al menos, simplemente configure una simulación/punto de referencia simple y vea cómo funcionan las cosas.

Cuestiones relacionadas