[Base de datos MySQL | Artículo 16] Motor de almacenamiento

Tabla de contenido

 Prefacio:

 Diagrama de arquitectura MySQL:

Introducción al motor de almacenamiento:

1. Motor de almacenamiento InnoDB:

2. Motor de almacenamiento MyISAM:

3. Motor de almacenamiento de MEMORIA:

4. Motor de almacenamiento de clúster NDB:

5. Motor de almacenamiento ARCHIVO:

Sintaxis del motor de almacenamiento:

ACID y bloqueos de nivel de fila:

 Resumir:


 Prefacio:

Después de estudiar los 15 artículos anteriores, hemos terminado de aprender la sintaxis básica de SQL y dominamos aproximadamente el funcionamiento de la base de datos. A continuación, realizaremos un aprendizaje avanzado de SQL. Lo que aprenderemos hoy es: el motor de almacenamiento de MySQL.

 Diagrama de arquitectura MySQL:

La estructura de MySQL incluye principalmente los siguientes aspectos:

1. Capa de servidor (Server Layer) : proporciona los servicios básicos de MySQL, incluida la gestión de conexiones, el análisis de consultas, la optimización y otras funciones.

2. Motor de almacenamiento : proporciona servicios de acceso y almacenamiento de datos. MySQL en sí es compatible con múltiples motores de almacenamiento, como InnoDB, MyISAM, etc., y cada motor de almacenamiento tiene sus propias características y funciones únicas.

3. Capa de red (capa de conexión): proporciona servicios de comunicación entre MySQL y el cliente, admite múltiples protocolos, como TCP/IP, HTTP, etc.

4. Interfaces de programación de aplicaciones (interfaces de programación de aplicaciones, API) : proporciona una variedad de interfaces de programación, incluidas C, C++, Python y otras interfaces, para facilitar la operación interactiva de aplicaciones y MySQL.

Toda la arquitectura de MySQL se compone principalmente de estas partes, entre las cuales la capa del servidor y la capa del motor de almacenamiento son los componentes centrales de MySQL, que son responsables de proporcionar servicios centrales y servicios de acceso y almacenamiento de datos, respectivamente. La capa de red y la capa de interfaz de programación de aplicaciones proporcionan servicios relacionados para interoperar con clientes y aplicaciones. Estos componentes trabajan juntos para formar una estructura de sistema poderosa y flexible de MySQL.

InnoDB es el motor de almacenamiento predeterminado utilizado después de MySQL 5.5.

Introducción al motor de almacenamiento:

El motor de almacenamiento es la implementación de tecnologías como el almacenamiento de datos, la creación de índices y la actualización/consulta de datos. El motor de almacenamiento está basado en tablas, no en bibliotecas, por lo que el motor de almacenamiento también se denomina estructura de tablas.

El motor de almacenamiento en MySQL es el componente central que maneja los aspectos del almacenamiento y recuperación de datos. MySQL admite muchos motores de almacenamiento diferentes, y estos motores de almacenamiento tienen sus propias ventajas únicas en algunos aspectos.

Los motores de almacenamiento comunes de MySQL incluyen lo siguiente:

1. Motor de almacenamiento InnoDB:

El motor de almacenamiento InnoDB es el motor de almacenamiento más utilizado en MySQL y también es el motor de almacenamiento predeterminado. Admite transacciones ACID, tiene funciones como bloqueo a nivel de fila y restricciones de clave externa, y es adecuado para aplicaciones transaccionales y de alta concurrencia. InnoDB admite la copia de seguridad y la recuperación de datos en caliente, y proporciona un mecanismo de almacenamiento en caché eficiente.

2. Motor de almacenamiento MyISAM:

MyISAM no admite transacciones y bloquea toda la tabla para operaciones de actualización, pero funciona muy bien para inserciones y consultas. Para aplicaciones de solo lectura o aplicaciones de subproceso único, el uso de MyISAM puede lograr un mejor rendimiento . La tabla MyISAM se caracteriza por el bloqueo de tablas y la velocidad rápida, pero no admite transacciones ni restricciones como claves externas.

3. Motor de almacenamiento de MEMORIA:

El motor de almacenamiento MEMORY almacena datos de tablas en la memoria y es adecuado para algunos escenarios que procesan datos, como ventas y monitoreo ambiental. MEMORY es un motor de almacenamiento muy rápido, pero su desventaja es que cuando el servidor cierra el proceso o falla, los datos de la tabla se vacían . MEMORY también admite índices Hash, lo que mejora en gran medida la eficiencia de las consultas.

4. Motor de almacenamiento de clúster NDB:

NDB Cluster puede dividir una base de datos en múltiples nodos, cada nodo mantiene un subconjunto de datos y trabaja en conjunto para respaldar las operaciones completas de la base de datos. Este motor de almacenamiento se utiliza en centros de datos de gran escala y alta disponibilidad .

5. Motor de almacenamiento ARCHIVO:

El motor de almacenamiento ARCHIVE es un motor de almacenamiento que solo se usa con fines de archivado y es adecuado para algunos escenarios, como registros de datos y copias de seguridad de instantáneas. Su objetivo es proporcionar un consumo de espacio en disco muy bajo y una capacidad de compresión y descompresión de alto rendimiento , no admite operaciones de indexación, actualización y eliminación, y a menudo se usa para comprimir archivos después de escribir datos. 

Los diferentes motores de almacenamiento tienen diferentes rendimientos, características, escenarios de uso, etc. Al usar MySQL, los desarrolladores deben elegir el motor de almacenamiento adecuado según sus necesidades.

Sintaxis del motor de almacenamiento:

1. Consulta el motor de la tabla actual:

show create  table 表名;

resultado de la operación:

 2. Especifique el motor de almacenamiento al crear la tabla:

create table name(
    字段1 字段类型
    ....
    字段2 字段类型
) ENGINE = 引擎类型;

 Ejemplo:

create table try(
    id int
) engine = MyISAM;

resultado de la operación:

3. Consultar el tipo de motor soportado por la base de datos actual:

show engines ;

resultado de la operación:

ACID y bloqueos de nivel de fila:

ÁCIDO

     Es una abreviatura que representa los principios básicos del procesamiento de transacciones , incluidos los siguientes cuatro aspectos:

  1. Atomicidad: una transacción se considera una operación atómica, que trata todas las tareas como un todo (si algunas de las operaciones fallan, la transacción completa se revertirá), se completan todas o no se completa ninguna.

  2. Consistencia : antes de que comience la transacción y después de que finalice, el estado de la base de datos debe permanecer consistente, lo que significa que las restricciones de integridad de la base de datos no pueden violarse durante la ejecución de la transacción.

  3. Aislamiento: el aislamiento significa que cuando la base de datos ejecuta múltiples transacciones, cada transacción debe ser completamente independiente y el orden en que se ejecutan no debe afectar los resultados.

  4. Durabilidad : la persistencia significa que después de que se completa una transacción, sus resultados deben almacenarse permanentemente en la base de datos, e incluso si ocurre una falla de hardware u otra falla del sistema, los resultados de la transacción enviada no pueden verse afectados.

Bloqueos a nivel de fila:  

      El bloqueo de nivel de fila (Row-Level Lock) es un mecanismo de bloqueo en el sistema de administración de bases de datos (DBMS).Al procesar lectura y escritura simultáneas, cada fila de datos se bloquea para garantizar que los datos leídos y escritos al mismo tiempo no entren en conflicto. A diferencia de los bloqueos de nivel de tabla tradicionales, los bloqueos de nivel de fila pueden procesar varias transacciones al mismo tiempo y solo bloquean una determinada fila, lo que mejora la eficiencia del procesamiento de datos.

       El principio de funcionamiento del bloqueo a nivel de fila es: antes de modificar/eliminar una fila de datos, agregue una marca de bloqueo a la fila y suelte la marca de bloqueo de fila hasta que se complete la transacción o después de confirmar/revertir.

       Las principales ventajas de los bloqueos de nivel de fila incluyen:

      1. Simultaneidad mejorada: los bloqueos a nivel de fila pueden bloquear filas individuales en lugar de toda la tabla, lo que significa que las operaciones de lectura y escritura se pueden implementar de manera más eficiente durante el acceso simultáneo.

      2. Conflictos de bloqueo reducidos: el uso de bloqueos a nivel de fila puede reducir los conflictos causados ​​por el acceso simultáneo a los bloqueos, evitar operaciones de serialización y mejorar la eficiencia de ejecución.

     3. Admite mayores capacidades de procesamiento de transacciones: al optimizar el mecanismo de bloqueo, los bloqueos a nivel de fila reducen el tiempo de espera de los bloqueos y la frecuencia de la competencia de bloqueos, lo que respalda mayores capacidades de procesamiento de transacciones.

     Cabe señalar que cuando se utilizan bloqueos de nivel de fila, se deben controlar dos cuestiones: la granularidad del bloqueo y el tiempo de bloqueo. Si la granularidad del bloqueo es demasiado fina, la cantidad de datos bloqueados puede ser demasiado grande, lo que genera una sobrecarga excesiva de competencia de bloqueo; si el tiempo de bloqueo es demasiado largo, el rendimiento de la lectura y escritura simultáneas puede verse afectado . Por lo tanto, cuando se utilizan bloqueos de nivel de fila, es necesario equilibrar los dos factores de granularidad y tiempo, y realizar los ajustes adecuados de acuerdo con los requisitos reales de la aplicación.

 Resumir:

        El motor de almacenamiento es la implementación de tecnologías como el almacenamiento de datos, la creación de índices y la actualización/consulta de datos. Elegimos diferentes motores para procesar los datos de la tabla de acuerdo con las diferentes necesidades, lo que puede mejorar en gran medida la eficiencia.

Este es el final del contenido de hoy, gracias por leer.

Si mi contenido es útil para ti, dale me gusta, comenta y marca . ¡La creación no es fácil, el apoyo de todos es mi motivación para perseverar!

Supongo que te gusta

Origin blog.csdn.net/fckbb/article/details/131137365
Recomendado
Clasificación