Cómo averiguar qué motor de almacenamiento usa MySQL o MariaDB

En Tutoriales y Guías por

El uso de bases de datos MySQL o MariaDB es algo muy habitual en aplicaciones web. Es un sistema que nos permite almacenar grandes cantidades de datos en una base de datos para después realizar consultas. Tanto MariaDB como MySQL usan los llamados motores de almacenamiento y a veces nos pueden traer algún que otro problema. Por ello, vamos a recopilar en este artículo diferentes formas de averiguar qué motor de almacenamiento usa MySQL o MariaDB.

motor de almacenamiento mysql

Los motores de almacenamiento son los encargados de gestionar las operaciones que se realizan sobre las diferentes tablas. Cada tabla puede tener asignado un motor de almacenamiento diferente. Además, en el sistema siempre hay un sistema de almacenamiento por defecto que usa el servidor MySQL o MariaDB. Para seguir este tutorial nos basaremos fundamentalmente en el uso de la consola, aunque todo se puede hacer a través de gestores de bases de datos como phpMyAdmin o Adminer.

Cómo comprobar que motor de almacenamiento usa por defecto nuestro servidor MySQL o MariaDB.

Empezaremos verificando el motor de almacenamiento por defecto. Cuando se crea una tabla y no se especifica el motor de almacenamiento que debe usar, se usará el motor de almacenamiento por defecto. Hace un tiempo el motor MyISAM era el más usado, pero gracias al as ventajas que ofrece InnoDB, este es el más usado en la actualidad. Existen otros tipos de motores de almacenamiento pero no es el objetivo de este tutorial revisarlos todos.

Para determinar cuál es el motor de almacenamiento por defecto en un servidor MySQL o MariaDB, basta con acceder al servidor con el comando mysql -u root -p tal y como ya explicamos en este tutorial. Nos solicitará que introduzcamos la contraseña.

Después ejecutamos la consulta SHOW engines; donde se nos mostrará un listado con todos los motores de almacenamiento soportados. El motor configurado por defecto en el sistema tiene asignado el valor DEFAULT tal y como vemos en la siguiente imagen.

show engines mysql mariadb

Ver el motor de almacenamiento de una tabla concreta a través de su sentencia de creación.

Este método nos permite ver la sentencia de creación de una tabla existente, donde entre otras cosas se especifica el motor de almacenamiento. Es un modo rápido de comprobar el motor de almacenamiento de una única tabla a través de la consola. Accedemos al servidor tal y como indicamos en el apartado anterior y ejecutamos la consulta:
SHOW create table basededatos.nombretabla;

A modo de ejemplo he hecho esta consulta sobre la base de datos de nombre vozidea y la tabla de nombre usuarios:
SHOW create table vozidea.usuarios;

ver sentencia de creación de tabla mysql

Consultar el motor de almacenamiento de varias tablas simultáneamente.

Si queremos ver el motor de almacenamiento de varias tablas de una vez para evitar ir una por una, tenemos que recurrir a la base de datos de información del sistema llamada information_schema. Esta base de datos contiene información de todas las bases de datos y tablas del servidor.

Ahora vamos listar el motor de almacenamiento de todas las tablas de una base de datos. Para ello ejecutamos el siguiente comando:
SELECT table_name,engine from information_schema.tables WHERE table_schema='nombredb';

Por ejemplo voy a ver el motor de almacenamiento de todas las tablas de mi blog WordPress:
SELECT table_name,engine from information_schema.tables WHERE table_schema='vozidea';

motor de almacenamiento de base de datos wordpress

Método alternativo para obtener información de las tablas de una base de datos.

Para terminar quiero mencionar la posibilidad de usar SHOW table status para ver el estado de una tabla. Dentro de la información que nos devuelve este comando, se incluye el motor de almacenamiento usado por la tabla.

Su uso es muy sencillo, en primer lugar tenemos que definir la base de datos que usamos y después ejecutamos el comando. Esto lo conseguimos ejecutando una única línea como la siguiente:
USE nombrebasedatos; SHOW table status where name='nombretabla';

Como ya dijimos al principio, si tienes algún gestor de base de datos con interfaz gráfica como phpMyAdmin o Adminer, consultar esta información es muy sencillo ya que se muestran directamente las propiedades de las tablas.

adminer motor de almacenamiento base de datos