Motor de base de datos y la diferencia

El motor de base de datos es el servicio principal que se utiliza para almacenar, procesar y proteger datos. El motor de la base de datos se puede utilizar para controlar los derechos de acceso y procesar rápidamente las transacciones, cumpliendo así los requisitos de la mayoría de las aplicaciones que necesitan procesar grandes cantidades de datos en la empresa. 

El proyecto de aplicación de la base de datos está vinculado a la base de datos a través del motor de la base de datos. ¿Qué es un motor de base de datos? En resumen, un motor de base de datos es un programa que maneja varias bases de datos y es responsable de procesar toda la parte central del trabajo relacionado con la base de datos. De manera similar, las instrucciones de funcionamiento del proyecto de aplicación de la base de datos se aplicarán a la base de datos mediante el procesamiento del motor de la base de datos.

La función y la posición del motor de la base de datos en la base de datos se muestran en la siguiente figura.


                                                                

Motor Innodb

El motor Innodb brinda soporte para transacciones de bases de datos ACID e implementa los cuatro niveles de aislamiento del estándar SQL Para el contenido de las transacciones de bases de datos y sus niveles de aislamiento, consulte este artículo sobre transacciones de bases de datos y sus niveles de aislamiento. El motor también proporciona bloqueos de nivel de fila y restricciones de clave externa. Su objetivo de diseño es manejar sistemas de bases de datos de gran capacidad . En realidad, es un sistema de base de datos completo basado en el backend de MySQL . Cuando mysql se esté ejecutando, Innodb creará un grupo de búfer en la memoria para el índice y los datos del búfer. Pero el motor no admite índices de tipo FULLTEXT y no guarda el número de filas en la tabla . Cuando SELECT COUNT (*) FROM TABLE, necesita escanear toda la tabla. Cuando necesite utilizar transacciones de base de datos, este motor es, por supuesto, la primera opción . Debido a que la granularidad de bloqueo es menor, la operación de escritura no bloqueará toda la tabla, por lo que cuando la concurrencia es alta, el uso del motor Innodb mejorará la eficiencia . Sin embargo, el uso de bloqueos a nivel de fila no es absoluto. Si MySQL no puede determinar el rango a escanear al ejecutar una instrucción SQL, la tabla InnoDB también bloqueará toda la tabla.

Motor MyISAM

MyIASM es el motor predeterminado de MySQL , pero no brinda soporte para transacciones de base de datos, ni admite bloqueos de nivel de fila ni claves externas . Por lo tanto, cuando INSERT (insertar) o UPDATE (actualizar) datos, las operaciones de escritura deben bloquear el toda la mesa , que es eficiente será menor. Sin embargo, a diferencia de Innodb, MyIASM almacena el número de filas en la tabla , por lo que cuando SELECCIONA CONTAR (*) DE LA TABLA, solo necesita leer directamente los valores guardados sin realizar un escaneo completo de la tabla. Si la tabla tiene muchas más operaciones de lectura que de escritura y no requiere el soporte de transacciones de base de datos, entonces MyIASM también es una buena opción.

Elección de dos motores

Los conjuntos de datos de gran tamaño tienden a elegir el motor InnoDB porque admite el procesamiento de transacciones y la recuperación de fallas . El tamaño de la base de datos determina el período de tiempo para la recuperación de fallas. InnoDB puede usar el registro de transacciones para la recuperación de datos, que será más rápida.

La diferencia entre los dos:

1.InnoDB不支持FULLTEXT类型的索引。
2.InnoDB 中不保存表的具体行数,也就是说,执行select count() fromtable时,InnoDB要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意的是,当count()语句包含where条件时,两种表的操作是一样的。
3.对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引。
4.DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。
5.LOAD TABLE FROMMASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,但是对于使用的额外的InnoDB特性(例如外键)的表不适用。
另外,InnoDB表的行锁也不是绝对的,假如在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表,例如updatetable set num=1 where name like “a%”
两种类型最主要的差别就是Innodb支持事务处理与外键和行级锁.而MyISAM不支持.所以MyISAM往往就容易被人认为只适合在小项目中使用。


ISAM
ISAM es un método de gestión de tablas de datos bien definido y probado en el tiempo, diseñado para tener en cuenta que el número de veces que se consulta la base de datos es mucho mayor que el número de veces que se actualiza. Por lo tanto, ISAM realiza operaciones de lectura muy rápidamente y no ocupa mucha memoria ni recursos de almacenamiento. Las dos deficiencias principales de ISAM son que no admite el procesamiento de transacciones y no puede ser tolerante a fallas: si su disco duro falla, los archivos de datos no se pueden recuperar. Si utiliza ISAM en aplicaciones de misión crítica, siempre debe realizar una copia de seguridad de todos sus datos en tiempo real. A través de su función de replicación, MYSQL puede admitir dichas aplicaciones de copia de seguridad.

MyISAM
MyISAM es el formato extendido ISAM de MySQL y el motor de base de datos predeterminado. Además de proporcionar una gran cantidad de funciones para la administración de índices y campos que no están disponibles en ISAM, MyISAM también usa un mecanismo de bloqueo de tabla para optimizar múltiples operaciones de lectura y escritura simultáneas. El costo es que debe ejecutar el comando OPTIMIZE TABLE con frecuencia para restaurar siendo actualizado Espacio desperdiciado por el mecanismo. MyISAM también tiene algunas extensiones útiles, como la herramienta MyISAMCHK para reparar archivos de bases de datos y la herramienta MyISAMPACK para restaurar el espacio desperdiciado. MYISAM enfatiza las operaciones de lectura rápida , que puede ser la razón principal por la que MySQL es tan favorecido por el desarrollo WEB: una gran cantidad de operaciones de datos que realiza en el desarrollo WEB son operaciones de lectura. Por lo tanto, la mayoría de los proveedores de alojamiento virtual y los proveedores de plataformas de INTERNET solo permiten el uso del formato MYISAM. Un defecto importante del formato MyISAM es que los datos no se pueden recuperar después de que la tabla está dañada .

Supongo que te gusta

Origin blog.csdn.net/m0_37541228/article/details/77749678
Recomendado
Clasificación