utiliza una soporta sirve segundo qué que por para optimizar motores motor lentas datos cuantas consultas caracteristicas mysql database storage innodb database-engine

una - para que sirve mysql



¿Qué son los motores de base de datos MySQL? (6)

Miré a mi alrededor y descubrí que algunos de los motores MySQL son innodb y MyISAM. Tal vez hay algunos más. Mi pregunta es ¿cuáles son estos motores de base de datos?

¿Cuáles son las diferencias entre diferentes motores MySQL? Y más importante aún, ¿cómo decido cuál usar?


Diferentes motores de almacenamiento disponibles, existen pocas razones para no utilizar los tipos de motor MyISAM o InnoDB. MyISAM lo hará en la mayoría de las situaciones, pero si tiene una gran cantidad de actualizaciones o insertos en comparación con sus búsquedas y selecciona, obtendrá un mejor rendimiento del motor InnoDB. Para obtener el mejor rendimiento de InnoDB, debe modificar los parámetros de su servidor, de lo contrario, no hay ninguna razón para no usarlo.

El motor MERGE es una forma muy efectiva de consultar datos de tablas múltiples, definidas de forma idéntica. El motor MEMORY es la mejor manera de realizar una gran cantidad de consultas complejas sobre datos que serían ineficaces para buscar en un motor basado en disco. El motor CSV es una excelente forma de exportar datos que podrían usarse en otras aplicaciones. BDB es excelente para datos que tienen una clave única a la que se accede con frecuencia.


Los motores de almacenamiento son componentes de MySQL que manejan las operaciones de SQL para diferentes tipos de tablas. InnoDB es el motor de almacenamiento predeterminado (para v5.7) y más general. Los motores de almacenamiento MySQL incluyen tanto aquellos que manejan tablas de transacciones seguras como aquellos que manejan tablas no transaccionales .

MySQL soporta motores de almacenamiento

  1. InnoDB : InnoDB es un motor de almacenamiento seguro para transacciones (compatible con ACID) para MySQL que tiene capacidades de confirmación, reversión y recuperación de fallas para proteger los datos del usuario. El bloqueo de nivel de fila de InnoDB (sin escalar a bloqueos de granularidad más gruesos) y las lecturas de no bloqueo consistentes de estilo de Oracle aumentan la concurrencia y el rendimiento de múltiples usuarios. InnoDB almacena datos de usuario en índices agrupados para reducir la E / S en consultas comunes basadas en claves primarias. Para mantener la integridad de los datos, InnoDB también admite restricciones de integridad referencial de FOREIGN KEY. Para obtener más información acerca de InnoDB, consulte el Capítulo 14, El motor de almacenamiento InnoDB.

  2. MyISAM : estas tablas tienen una huella pequeña. El bloqueo a nivel de tabla limita el rendimiento en las cargas de trabajo de lectura / escritura, por lo que a menudo se usa en las cargas de trabajo de solo lectura o de lectura en las configuraciones de almacenamiento web y de datos.

  3. Memory : almacena todos los datos en la RAM, para un acceso rápido en entornos que requieren búsquedas rápidas de datos no críticos. Este motor era conocido anteriormente como el motor HEAP. Sus casos de uso están disminuyendo; InnoDB con su área de memoria de agrupación de almacenamiento intermedio proporciona una forma duradera y de uso general para mantener la mayoría o todos los datos en la memoria, y NDBCLUSTER proporciona búsquedas rápidas de valores-clave para grandes conjuntos de datos distribuidos.

  4. CSV : sus tablas son realmente archivos de texto con valores separados por comas. Las tablas CSV le permiten importar o volcar datos en formato CSV, para intercambiar datos con scripts y aplicaciones que leen y escriben ese mismo formato. Debido a que las tablas CSV no están indexadas, normalmente conserva los datos en tablas InnoDB durante el funcionamiento normal y solo utiliza tablas CSV durante la etapa de importación o exportación.

  5. Archive : estas tablas compactas y sin indexación están destinadas a almacenar y recuperar grandes cantidades de información histórica, archivada o de auditoría de seguridad con poca referencia.

  6. Blackhole : el motor de almacenamiento Blackhole acepta pero no almacena datos, similar al dispositivo Unix / dev / null. Las consultas siempre devuelven un conjunto vacío. Estas tablas se pueden usar en configuraciones de replicación donde las sentencias DML se envían a servidores esclavos, pero el servidor maestro no conserva su propia copia de los datos.

  7. NDB (también conocido como NDBCLUSTER): este motor de base de datos en clúster es especialmente adecuado para aplicaciones que requieren el mayor grado de disponibilidad y disponibilidad.

  8. Merge : permite que un DBA o desarrollador de MySQL agrupe lógicamente una serie de tablas MyISAM idénticas y las referencia como un solo objeto. Bueno para entornos VLDB como almacenamiento de datos.

  9. Federated : Ofrece la capacidad de vincular servidores MySQL separados para crear una base de datos lógica desde muchos servidores físicos. Muy bueno para entornos distribuidos o data mart.

  10. Example : este motor sirve como ejemplo en el código fuente de MySQL que ilustra cómo comenzar a escribir nuevos motores de almacenamiento. Es principalmente de interés para los desarrolladores. El motor de almacenamiento es un "stub" que no hace nada. Puede crear tablas con este motor, pero no se pueden almacenar datos en ellos ni recuperarlos.

No tiene restricciones para usar el mismo motor de almacenamiento para un servidor o esquema completo. Puede especificar el motor de almacenamiento para cualquier tabla. Por ejemplo, una aplicación puede usar principalmente tablas InnoDB, con una tabla CSV para exportar datos a una hoja de cálculo y algunas tablas MEMORY para espacios de trabajo temporales.

Referencia: 1 2


MyISAM e InnoDB son los motores más comúnmente utilizados.

MyISAM es ligeramente más rápido que InnoDB e implementa el índice FULLTEXT, que es bastante útil para integrar las capacidades de búsqueda. MyISAM no se transa y no implementa restricciones de clave externa, lo cual es un gran inconveniente.

Pero puede usar lo mejor de ambos y crear tablas con diferentes motores de almacenamiento. Algunos software (WordPress, creo) usan Inno para la mayoría de los datos, como las relaciones entre páginas, versiones, etc. Los registros para las publicaciones contienen una ID que vincula a un registro en una tabla de contenido separada que usa MyISAM. De esta forma, el contenido se almacena en la tabla que tiene las mejores capacidades de búsqueda, mientras que la mayoría de los demás datos se almacenan en tablas que hacen cumplir la integridad de los datos.

Si yo fuera tú, elegiría a Inno, porque es el más confiable. Solo use MyISAM para fines específicos si lo necesita.

Puede configurar su base de datos para usar InnoDB de forma predeterminada al crear nuevas tablas.


Un motor de almacenamiento es un módulo de software que un sistema de gestión de bases de datos utiliza para crear, leer y actualizar datos de una base de datos. Hay dos tipos de motores de almacenamiento en MySQL: transaccionales y no transaccionales. Para MySQL 5.5 y posterior, el motor de almacenamiento predeterminado es InnoDB. El motor de almacenamiento predeterminado para MySQL anterior a la versión 5.5 era MyISAM. Elegir el motor de almacenamiento correcto es una decisión estratégica importante que tendrá un impacto en el desarrollo futuro. En este tutorial, utilizaremos los motores de almacenamiento MyISAM, InnoDB, Memory y CSV. Si eres nuevo en MySQL y estás estudiando el sistema de administración de bases de datos MySQL, entonces esto no es una gran preocupación. Si está planeando una base de datos de producción, entonces las cosas se vuelven más complicadas. Puede leer más aquí: http://zetcode.com/databases/mysqltutorial/storageengines/


puede ser que obtenga más información aquí: https://en.wikipedia.org/wiki/Database_engine

Un motor de base de datos (o motor de almacenamiento) es el componente de software subyacente que un sistema de administración de bases de datos (DBMS) utiliza para crear, leer, actualizar y eliminar datos (CRUD) de una base de datos. La mayoría de los sistemas de administración de bases de datos incluyen su propia interfaz de programación de aplicaciones (API) que permite al usuario interactuar con su motor subyacente sin pasar por la interfaz de usuario del DBMS.


mysql> SHOW ENGINES; +------------+---------+----------------------------------------------------------------+--------------+------+------------+ | Engine | Support | Comment | Transactions | XA | Savepoints | +------------+---------+----------------------------------------------------------------+--------------+------+------------+ | InnoDB | YES | Supports transactions, row-level locking, and foreign keys | YES | YES | YES | | MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO | | BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO | | CSV | YES | CSV storage engine | NO | NO | NO | | MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO | | FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL | | ARCHIVE | YES | Archive storage engine | NO | NO | NO | | MyISAM | DEFAULT | Default engine as of MySQL 3.23 with great performance | NO | NO | NO | +------------+---------+----------------------------------------------------------------+--------------+------+------------+

Personalmente siempre uso InnoDB si tengo que usar MySQL. Admite claves de transacción y externas, mientras que MyISAM no.