Recibe alertas instantáneas si tu sitio web cae
SMS Llamada Correo
Empezar a monitorizar

¿Qué es InnoDB y en qué se diferencia de otros motores?

Autor: Redacción HOSTTEST   | 29 oct 2020

InnoDB erklärtLos sistemas de gestión de bases de datos MySQL y MariaSB constituyen actualmente el estándar más extendido para bases de datos en sitios web. Sin embargo, solo definen la manera en que el sistema almacena los datos: como relacionales en tablas que se crean con criterios fijos. Para el manejo directo de las bases de datos y su manipulación, MySQL y MariaDB emplean, en cambio, un subsistema de almacenamiento externo (engine) que actúa como interfaz entre el sistema de gestión de bases de datos (DBMS) y la información. Esta tarea la desempeña desde hace varios años el motor de almacenamiento InnoDB en ambos.

¿Cuál es la función de un motor como InnoDB?

La función principal de InnoDB y de otros subsistemas de almacenamiento es actuar como una capa intermedia adicional entre el software responsable de la administración y la información almacenada. Esta capa sirve, por ejemplo, para administrar los accesos, bloquear registros y coordinar lecturas o escrituras paralelas desde distintas fuentes. En este contexto, el DBMS en forma de MySQL o MariaDB solo constituye el marco que define, por ejemplo, la estructura de los datos y el tipo de sintaxis para las órdenes. A continuación, este delega las tareas junto con los datos a InnoDB u otro motor, que se encarga del manejo directo de la información.

 

Encuentra alojamiento web con bases de datos MySQL

Asegura ahora el alojamiento web perfecto con bases de datos MySQL

Ir a la comparativa de alojamiento web MySQL

 

¿Qué hay detrás de la separación entre MySQL e InnoDB?

Mediante el uso de un sistema estable con diferentes motores de almacenamiento, MySQL y MariaDB poseen una flexibilidad que no sería posible con una integración fija. En este esquema, InnoDB y otros motores actúan como complementos (plug-ins), permitiendo una arquitectura modular en las funciones centrales del servidor de bases de datos. Esta separación facilita además el mantenimiento y la optimización del código fuente, ya que la incorporación de subsistemas de almacenamiento de proveedores externos permite concentrar todos los recursos en el desarrollo de MySQL o MariaDB. InnoDB procede originalmente de la empresa finlandesa Innobase Oy, que fue integrada completamente en la estructura del grupo tras su adquisición en 2005.

¿Qué ventajas ofrece InnoDB frente a otros motores de almacenamiento?

Hasta la versión 5.0 MySQL utilizaba MyISAM (My Indexed Sequential Access Method) como subsistema de almacenamiento, pero abandonó ese estándar en favor de InnoDB. También la mayoría de los sistemas de gestión de contenidos (CMS) y el software de tiendas usan InnoDB como estándar; muchos plugins, sin embargo, siguen recurriendo a MyISAM. Esta diferencia de preferencia se basa principalmente en las características específicas de ambos motores. Entre las características de InnoDB se incluyen:

  • Los bloqueos afectan solo a una fila (row) de un registro en lugar de a toda la tabla
  • Accesos seguros mediante transacciones
  • Las transacciones pueden abortarse y revertirse antes de finalizar (rollback)
  • Opciones integradas para la creación y restauración de copias de seguridad
  • Bloqueo de escritura automático para otras transacciones durante operaciones de escritura/li]
  • Recuperación de bases de datos tras un fallo (crash)
  • Consultas SELECT rápidas (lectura de datos)
  • Soporte de claves foráneas para la seguridad e integridad de las transacciones

En cambio, MyISAM presenta las siguientes características:

  • Búsqueda integrada de texto completo
  • Sin soporte para integridad referencial
  • Acceso a las bases de datos en operaciones individuales en lugar de transacciones agrupadas
  • No hay control de las bases de datos sobre la consistencia y la exhaustividad de los accesos
  • Accesos rápidos INSERT y UPDATE (lectura de datos)
  • Uso eficiente de la memoria RAM y del disco duro

Que InnoDB requiera tiempos de acceso claramente mayores al escribir datos se debe al estricto control sobre la consistencia de las bases de datos. A diferencia de MyISAM, InnoDB supervisa cada acceso hasta que este se haya escrito correctamente en la memoria o en un fichero. MyISAM, en cambio, simplemente da una instrucción y deja el control de los cambios exclusivamente al sistema operativo.

¿Cómo se asignan las bases de datos a un motor concreto como InnoDB?

El trabajo con bases de datos rara vez se realiza de forma manual; si se requieren intervenciones de este tipo, son recomendables interfaces web cómodas como, por ejemplo, phpMyAdmin. Lo habitual es que esto se haga a través de la extensión de PHP MySQLi (MySQL Improved): desde la versión 7.0 el lenguaje de programación ya no soporta su versión anterior MySQL. La forma más sencilla consiste en indicar el subsistema de almacenamiento al crear las bases de datos mediante la opción ENGINE =. También es posible una conversión posterior ejecutando el siguiente comando en MySQL, a través de MySQLi o en phpMyAdmin:

ALTER TABLE name ENGINE=myisam/innodb;

Sin embargo, una conversión conlleva riesgo de pérdida de datos, y la operación mixta entre InnoDB y otros motores solo es recomendable de forma limitada.

Alternativas a InnoDB son Redis, InfluxDB y MySQLi.

 

Encontrar hosting web con bases de datos MySQL

Consigue ahora el hosting web perfecto con bases de datos MySQL

Ir al comparador de hosting web MySQL

 

Foto: Gerd Altmann en Pixabay

Escribe un comentario


Más proveedores de hosting


Más artículos interesantes

¿Qué son las inyecciones SQL y cómo protegerse?

Las inyecciones SQL siguen siendo una puerta de entrada para los atacantes. Os mostramos cómo podéis protegeros.

¿Cómo se pueden importar y exportar bases de datos MySQL?

Os mostramos lo fácil que es exportar bases de datos MySQL y volver a importarlas. Así estaréis preparados para una migr...