Introducción al motor de almacenamiento MySQL

1. Introducción al motor de base de datos MySQL

La mayor diferencia entre MySQL y otras bases de datos es que es un sistema de almacenamiento enchufable. La ventaja de los motores de almacenamiento es que cada motor tiene sus propias características, y se pueden determinar diferentes tablas de motores de almacenamiento de acuerdo con las necesidades específicas. Durante nuestro uso, si no estamos satisfechos con el rendimiento del motor de almacenamiento, podemos modificar el código fuente de acuerdo con los requisitos para obtener las características que queremos. Por supuesto, también podemos escribir un motor de almacenamiento nosotros mismos.
Inserte la descripción de la imagen aquí

2. Ventajas y desventajas de varios motores

1. Motor de almacenamiento InnoDB

InnoDB es actualmente el motor transaccional predeterminado de MYSQL y el motor preferido para bases de datos transaccionales, siendo actualmente el motor de almacenamiento más importante y más utilizado. Admite tabla de seguridad de transacciones (ACID), admite bloqueo de filas y clave externa.

Las principales características de InnoDB son:

  1. InnoDB proporciona a MySQL un motor de almacenamiento seguro para transacciones con capacidades de confirmación, reversión y recuperación de fallos. En las consultas SQL, puede mezclar libremente tablas InnoDB con otros tipos de tablas MySQL, incluso en la misma consulta. Se puede mezclar
  2. InnoDB está diseñado para un rendimiento máximo en el procesamiento de grandes cantidades de datos En términos de eficiencia de CPU, la mayoría de los motores de almacenamiento de bases de datos relacionales basados ​​en disco están fuera del alcance;
  3. InnoDB admite restricciones de integridad de clave externa. Al almacenar los datos en la tabla, el almacenamiento de cada tabla se almacena en el orden de la clave principal. Si la clave principal no se muestra en la definición de la tabla, InnoDB generará un ROWID de 6 bytes para cada fila y Use esto como la clave principal;
  4. InnoDB logra una alta concurrencia a través del control de concurrencia de múltiples versiones, y ha logrado 4 niveles de aislamiento (Lectura no comprometida para leer contenido no comprometido, Lectura comprometida para leer contenido enviado, Lectura repetible para ser repetible, Serializable para ser serializable) y Lectura repetible Lectura repetible como nivel predeterminado
  5. InnoDB se utiliza en muchos sitios de bases de datos grandes que requieren un alto rendimiento, y muchas empresas también han demostrado su alta disponibilidad, alto rendimiento y alta escalabilidad.

Escenarios de aplicación:

Debido a que InnoDB admite el procesamiento de transacciones, claves externas, capacidades de reparación de fallas y funciones de control de concurrencia, tiene altos requisitos para la integridad de las transacciones y el control de concurrencia, como los sistemas operativos bancarios y la venta de boletos. . . InnoDB tiene grandes ventajas

2. Motor de almacenamiento MyISAM

Principalmente para algunas aplicaciones de base de datos OLAP (procesamiento analítico en línea), se utilizó como motor de almacenamiento predeterminado antes de MySQL 5.5.8 (excepto la ventana). MyISAM no admite cosas, no admite el diseño de bloqueo de tablas, no admite la indexación de texto completo, pero tiene una mayor velocidad de inserción y consulta.

Las principales características de MyISAM son:

  1. MyISAM no es seguro para transacciones;
  2. MyISAM es un bloqueo a nivel de tabla e InnoDB es un bloqueo a nivel de fila
  3. Para las tablas del motor de almacenamiento MyISAM, los archivos de índice de caché de valores de MySQL y los archivos de datos son completados por el propio sistema operativo

Escenarios de aplicación:

Si la tabla se usa principalmente para insertar nuevos registros y leer registros, entonces la elección de MyISAM puede lograr una alta eficiencia de procesamiento, realizar una gran cantidad de operaciones de selección, contar operaciones y no necesitar cosas.

3. Motor de almacenamiento NDB

La característica de NDB es que todos los datos se almacenan en la memoria. A partir de MySQL 5.1, los datos no indexados se pueden colocar en el disco, por lo que la velocidad de búsqueda de la clave principal es muy rápida y el rendimiento de la base de datos se mejora linealmente al agregar nodos de almacenamiento de datos NDB, que es alto Sistema de clúster de alto rendimiento disponible.
Pero su operación de unión se completa en la capa de base de datos MySQL, por lo que la velocidad de consulta es muy lenta y requiere una gran sobrecarga de red.

4. Motor de almacenamiento de memoria

La memoria sirve para almacenar los datos de la tabla en la memoria. Si la base de datos falla o se reinicia, los datos desaparecen.

Características principales de Meomory

  1. El motor de almacenamiento de memoria es muy rápido, pero solo admite bloqueos de tabla y tiene un rendimiento de concurrencia deficiente;
  2. El motor de almacenamiento de MEMORIA usa el índice hash de forma predeterminada, que es más rápido que usar el tipo B- + Tree. Por supuesto, también se puede usar el índice B-tree.

Escenarios de aplicación:

Muy adecuado para usar una tabla temporal para consultas en la base de datos

5. Archivar

El archivo solo admite operaciones de inserción y selección, y los índices se han admitido después de MySQL 5.1. El motor de almacenamiento de archivos utiliza el algoritmo zlib para lograr una relación de compresión de 1:10, tiene un buen mecanismo de compresión y es muy adecuado para almacenar datos archivados, por lo que a menudo se utiliza como almacén.

Características principales de Archive

  1. No es un motor de almacenamiento seguro para transacciones;
  2. Los bloqueos de fila se utilizan para implementar operaciones de inserción altamente concurrentes

Escenarios de aplicación:

Debido a las características de alta compresión y rápida inserción, Archive es muy adecuado como motor de almacenamiento para la tabla de registro, pero la premisa es que la tabla no se consulta con frecuencia.

6. Federado

La tabla del motor de almacenamiento federado no almacena datos, apunta a una tabla en un servidor de base de datos MySQL remoto y solo admite tablas de base de datos MySQL

Supongo que te gusta

Origin blog.csdn.net/weixin_46687295/article/details/106877117
Recomendado
Clasificación