¿Cuáles son los diferentes motores de bases de datos MySQL?

Los motores de base de datos son componentes de MySQL que pueden manejar operaciones SQL como crear, leer y actualizar datos de una base de datos. Hay dos tipos de motores en MySQL: transaccionales y no transaccionales. InnoDB es el motor predeterminado para MySQL 5.5 y versiones superiores. Major DBMS utiliza una interfaz de programación de aplicaciones (API) para permitir la interacción de los usuarios con los motores de base de datos. Es muy necesario conocer los motores de las bases de datos de producción y también impacta en el desarrollo futuro. Para acceder a la lista de motores MySQL disponibles ejecutamos SHOW ENGINES; consulta.

Hay 2 tipos de motores de base de datos:

  • Bases de datos transaccionales : en este tipo, podemos revertir las operaciones de escritura en la base de datos si se dejan incompletas. Estas operaciones se conocen como transacciones. Principalmente, los motores modernos son transaccionales.
  • Bases de datos no transaccionales: a diferencia de las bases de datos transaccionales, no proporcionan Reversión/Confirmación. En su lugar, necesitamos codificar manualmente para realizar las operaciones de reversión.

La siguiente imagen ilustra los diferentes motores disponibles en MySQL:

Lista de motores de base de datos en MySQL

En este artículo, aprenderemos sobre los motores InnoDB, MyISAM, MEMORY, MERGE, CSV y SEQUENCE , sus características, además de conocer sus ventajas y desventajas.

InnoDB: InnoDB es un motor de almacenamiento para DBMS MySQL y MariaDB. Es el motor de almacenamiento predeterminado para las versiones 5.5 y superiores de MySQL. Reemplazó a MyISAM como motor predeterminado.

Características:

  • Proporciona características de transacción estándar compatibles con ACID, junto con soporte de clave externa. Oracle recomienda InnoDB para tablas.
  • Admite operaciones de control de simultaneidad de múltiples versiones, recuperación de fallos y reversión. El rendimiento multiusuario es posible gracias al bloqueo a nivel de fila.
  • También se usa en el servidor MariaDB. Para mantener la integridad y la seguridad de los datos, InnoDB admite restricciones de clave externa.
  • InnoDB admite búferes que almacenan datos en caché, así como índices.
  • Ofrece un método de bloqueo de tabla, lo que significa que solo un usuario puede modificar la tabla a la vez.

ventajas:

  • Admite propiedades ACID (Atomicidad, Consistencia, Aislamiento y Durabilidad) para proteger los datos del usuario.
  • Acceso a múltiples usuarios con alto rendimiento y lecturas consistentes al estilo de Oracle.
  •  Admite el uso de claves externas que ayudan en las operaciones consistentes de actualización, inserción y eliminación. Además, ayuda a mantener la integridad en el contenido de las tablas de la base de datos.          

Desventajas:

  • No es compatible con la búsqueda de texto completo.      
  • Si el rendimiento es una prioridad, no se usa porque es más lento que MyISAM. 
  • El uso de relaciones de clave externa hace que su uso sea complejo.

MyISAM: es el motor predeterminado para las versiones MySQL DBMS anteriores a la 5.5. MyISAM es un motor de almacenamiento de recuperación y almacenamiento de alta velocidad. No admite transacciones. Es fácil de copiar entre sistemas y tiene una pequeña huella de datos. Se utiliza principalmente en web y almacenamiento de datos.

Características:

  • MyISAM se almacena en 3 archivos: .frm: formato de tabla de tiendas, .MYD: archivos de datos, .MYI: archivo de índice.
  • Admite tres formatos de almacenamiento: Fijo, Dinámico y Comprimido.
  • La longitud máxima de la clave es de 1000 bytes.
  • El número máximo de índices por tabla y columnas por índice son 64 y 16 respectivamente.

ventajas:

  • MyISAM es más simple que otros motores.
  • Es más rápido que cualquier otro motor de base de datos de propósito general. También proporciona una búsqueda de texto completo

Desventajas:

  • Puede conducir fácilmente a la corrupción de la tabla. Sin embargo, podemos usar la consulta REPAIR TABLE para recuperarlo.
  • No admite transacciones ni restricciones de clave externa.

CSV: se utiliza para almacenar el formato CSV en un archivo de texto. Siempre se compila en el servidor MySQL. Es liviano y se puede importar fácilmente a programas de hojas de cálculo.

Características:

  • Las tablas CSV usan el formato CSV. Por lo tanto, se puede usar para el intercambio de datos, por ejemplo. utilizando la hoja de cálculo.
  • La edición de datos se puede realizar incluso si el servidor MySQL está inactivo utilizando editores de archivos estándar
  • Carga instantánea de datos masivos en el servidor MySQL.

ventajas: 

  • Se crea un metarchivo que almacena el estado de la tabla y el número de filas que existen en la tabla después de crear el archivo CSV.
  • Los datos se almacenan en un archivo de texto usando el formato de valor común separado.

Desventajas: 

  • El motor CSV no admite la indexación.
  • No admite particiones.
  • Debe tener atributos NOT NULL en todas las columnas.

MERGE: las tablas creadas con el motor MERGE se utilizan para manejar un gran volumen de datos fácilmente. Es una colección de tablas MyISAM idénticas que se pueden usar como una sola. Por lo tanto, también se conoce como el motor MRG_MyISAM. Es bueno para entornos de almacenamiento de datos.

Características:

  • Fue introducido en la versión MySQL 3.23.25.
  • UNION e INSERT_METHOD son dos características únicas de las tablas MERGE.
  • Las tablas MERGE no tienen índices PRIMARY KEY o UNIQUE, ya que no pueden imponer la unicidad en todas las tablas.

ventajas:

  • Es una colección de tablas MyISAM idénticas que se pueden usar como una sola tabla. La memoria se guarda gracias a ello.
  • Puede realizar la reparación más eficiente de tablas individuales en lugar de reparar una sola tabla grande que se crea fusionando estas tablas individuales.
  • Las tablas de combinación no están limitadas al tamaño de archivo del sistema operativo, a diferencia de las tablas MyISAM.

Desventajas:

  • Solo se pueden usar tablas MyISAM idénticas para fusionar.
  • Si la tabla MERGE no es temporal, es necesario que las tablas de combinación no sean temporales. Si la tabla MERGE es temporal, las tablas MyISAM pueden ser una combinación de temporales y no temporales.
  • Algunas funciones de MyISAM no están disponibles en las tablas MERGE.

MEMORY: Se considera que es el motor más rápido utilizado para crear tablas temporales en la memoria (también conocido como HEAP). Por lo tanto, los datos se pierden cuando se reinicia la base de datos. No es transaccional. Es útil para búsquedas rápidas de referencias y otros datos de identificación. Almacena todos los datos en RAM para un acceso más rápido en lugar de almacenar datos en discos. Es ampliamente utilizado para cachés de datos de tablas de solo lectura o para uso temporal.

Características:

  • No crea ningún archivo en el disco.
  • Las tablas MEMORY no pueden contener columnas BLOB o TEXT.
  • Se admiten las columnas AUTO_INCREMENT.
  • VARCHAR se almacena utilizando una longitud fija, es decir, utiliza un formato de almacenamiento de filas de longitud fija.

ventajas:

  • Los datos se cifran y se implementan en el servidor a través de funciones de cifrado.
  • Admite índices de árbol B.
  • Ofrece bloqueo de bajo nivel y operación de subprocesos múltiples para una baja contención entre clientes.

Desventajas:

  • Las tablas MEMORY no se pueden particionar.
  • La memoria no se puede recuperar si elimina filas individuales de una tabla MEMORY

SECUENCIA: Es el motor transaccional utilizado para crear secuencias ascendentes o descendentes de enteros positivos con valores iniciales, finales e incrementales dados. Es de solo lectura y admite XA.

Características:

  • Al igual que el motor de base de datos MEMORY, no crea ningún archivo en un disco.
  • Crea mesas virtuales automáticamente cada vez que las necesitamos. No hay forma de crear una tabla SEQUENCE explícitamente.
  • Este motor es útil con uniones y subconsultas.

ventajas:

  • El motor SEQUENCE no está vinculado a las tablas. Por lo tanto, también podemos usarlos para cualquier otro propósito.
  • Flexibilidad en la implementación de la tabla.

Desventajas:

  • Se requiere programación adicional para la función AUTO_INCREMENT que no está disponible en el motor de forma predeterminada.
  • Problema de simultaneidad cuando hay varias sesiones paralelas activas.

Publicación traducida automáticamente

Artículo escrito por priddheshinternship y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *