sql >> Base de Datos >  >> RDS >> MariaDB

Exploración de las opciones del motor de almacenamiento para MariaDB

MariaDB Server se derivó originalmente de MySQL y, por lo tanto, ha heredado su arquitectura de motor de almacenamiento conectable. Los diferentes motores de almacenamiento tienen diferentes características en términos de rendimiento, pero también características y posibilidades. Esto permite a los usuarios elegir la herramienta adecuada para el trabajo en lugar de usar el mismo motor de almacenamiento sin importar cuál sea el propósito de los datos, cuáles son los requisitos con respecto al almacenamiento de datos y cómo se debe acceder a los datos. En esta publicación de blog, nos gustaría ver las opciones disponibles en MariaDB y discutir posibles casos de uso para los diferentes motores de almacenamiento disponibles.

¿Qué es un motor de almacenamiento?

Primero, sin embargo, echemos un vistazo a lo que es el motor de almacenamiento. MariaDB consta de varias capas que funcionan juntas. SQL es analizado por uno de ellos, luego MariaDB busca datos, utilizando una API común. Debajo del capó hay un motor de almacenamiento que contiene los datos y reacciona a las solicitudes de datos, extrae los datos y los pone a disposición de MariaDB.

En resumen, MariaDB envía una solicitud de una fila y todo depende del motor de almacenamiento para recuperarla y devolverla. A MariaDB no le importa cómo se almacena exactamente la fila o cómo se va a recuperar, todo depende de la implementación dentro del motor de almacenamiento. Los motores de almacenamiento también pueden implementar diferentes características. Las transacciones también se manejan completamente en el lado del motor de almacenamiento. Es por eso que algunas de las transacciones de soporte y otras no. Con esta arquitectura es posible escribir diferentes motores de almacenamiento, dedicados a resolver diferentes problemas.

Motores de almacenamiento en el servidor MariaDB

MariaDB viene con un conjunto de motores de almacenamiento. Puede verificar cuáles están disponibles a través de un simple comando:

MariaDB [(none)]> SHOW STORAGE ENGINES;

+--------------------+---------+-------------------------------------------------------------------------------------------------+--------------+------+------------+

| Engine             | Support | Comment                                                                                         | Transactions | XA   | Savepoints |

+--------------------+---------+-------------------------------------------------------------------------------------------------+--------------+------+------------+

| MRG_MyISAM         | YES     | Collection of identical MyISAM tables                                                           | NO           | NO   | NO         |

| CSV                | YES     | Stores tables as CSV files                                                                      | NO           | NO   | NO         |

| Aria               | YES     | Crash-safe tables with MyISAM heritage. Used for internal temporary tables and privilege tables | NO           | NO   | NO         |

| SEQUENCE           | YES     | Generated tables filled with sequential values                                                  | YES          | NO   | YES        |

| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables                                       | NO           | NO   | NO         |

| MyISAM             | YES     | Non-transactional engine with good performance and small data footprint                         | NO           | NO   | NO         |

| PERFORMANCE_SCHEMA | YES     | Performance Schema                                                                              | NO           | NO   | NO         |

| InnoDB             | DEFAULT | Supports transactions, row-level locking, foreign keys and encryption for tables                | YES          | YES  | YES        |

+--------------------+---------+-------------------------------------------------------------------------------------------------+--------------+------+------------+

8 rows in set (0.000 sec)

Como puede ver, hay muchos de ellos, cubriremos los más importantes.

InnoDB

InnoDB, obviamente, es EL motor de almacenamiento. Transaccional, creado para lidiar con el tráfico OLTP, puede proporcionar un rendimiento realmente excelente. Es el motor predeterminado que se usa en MariaDB y, a menos que sepa lo que está haciendo, probablemente desee apegarse a él para su base de datos.

MiISAM

MyISAM es uno de los motores de almacenamiento "originales" disponibles en MySQL y luego en MariaDB. No es transaccional, por lo que no es ideal para las configuraciones de replicación y, bueno, también para la mayoría de los otros entornos. Todavía es un motor muy rápido, especialmente en lo que respecta al acceso a índices, lo que lo hace adecuado para cargas de trabajo de solo lectura que no se verán afectadas por el bloqueo de INSERT y la fragilidad general de MyISAM.

Aria

Aria es un motor creado para MariaDB como reemplazo de MyISAM. No es transaccional, pero es a prueba de fallas, lo que lo hace mucho más confiable. Actualmente se usa para tablas temporales y del sistema, pero también se puede usar en lugar de MyISAM para cargas de trabajo que requieren un acceso rápido de solo lectura a los datos.

Memoria

Este es un motor todo en memoria que normalmente se usa para tablas temporales en memoria. No es persistente, pero podría funcionar para algunas cargas de trabajo de solo lectura.

CSV

Este motor de almacenamiento está diseñado para almacenar datos en un archivo como valores separados por comas. No es el motor de almacenamiento más utilizado, es muy especializado, pero aún se puede utilizar para extraer fácilmente datos de MariaDB a cualquier otro software de base de datos, así como a Excel o un software similar.

Motores de almacenamiento en MariaDB Enterprise Server

MariaDB Enterprise Server viene con un par de motores de almacenamiento adicionales sobre lo que está disponible en la edición comunitaria. Echemos un vistazo a ellos también.

ColumnaTienda

Este es un motor de almacenamiento dedicado para la carga de trabajo analítico. Gracias a la forma específica de almacenar los datos, agiliza la recuperación de grandes volúmenes de datos, necesarios con frecuencia para la elaboración de informes. Este podría ser el motor de almacenamiento de su elección para las cargas de trabajo OLAP (procesamiento analítico en línea).

S3

El motor S3 le permite acceder a los datos ubicados en S3. Es un motor no transaccional destinado a dar a los usuarios la opción de archivar datos en el S3. El acceso de solo lectura está disponible después de crear la tabla.

Araña

El motor Spider le permite conectar múltiples bases de datos MariaDB a través de la red, creando un almacenamiento fragmentado. Es transaccional y facilita a los usuarios escalar horizontalmente al dividir los datos entre numerosos servidores empresariales MariaDB, distribuyendo el tráfico y la carga de trabajo entre ellos.

MisRocas

MyRocks es un motor de almacenamiento desarrollado en Facebook, está diseñado para reducir la amplificación de escritura y minimizar el desgaste de las unidades SSD. Es un motor transaccional que debería manejar bastante bien la carga de trabajo de OLTP, especialmente las cargas de trabajo típicas de los sitios web de redes sociales. MyRocks viene con una compresión bastante buena, mejor que InnoDB, lo que puede ayudar a reducir significativamente los gastos de almacenamiento si el conjunto de datos se vuelve demasiado grande para que InnoDB lo maneje correctamente.

Conclusión

Como puede ver, MariaDB Enterprise y Community Server brindan numerosas opciones con respecto a la forma en que se pueden almacenar los datos. Hay motores de almacenamiento que sobresalen en cargas de trabajo de solo lectura, OLAP o grandes conjuntos de datos. Depende del usuario elegir un buen ajuste. Tenga en cuenta que, en caso de duda, siempre puede atenerse a InnoDB, que proporciona un rendimiento bastante bueno en general y debería ser más que suficiente para la mayoría de los casos. Es para esos casos extremos en los que puede necesitar buscar algo más adecuado.