1/ISAM
ISAM es un enfoque bien definido y probado en el tiempo para la gestión de tablas de datos, diseñado con la base de datos consultándose mucho más a menudo de lo que se actualiza. Como resultado, ISAM realiza lecturas rápidamente y no ocupa mucha memoria ni recursos de almacenamiento. Las dos principales desventajas de ISAM son que no soporta procesamiento de transacciones y no es tolerante a fallos: si tu disco duro se bloquea, los archivos de datos no pueden recuperarse. Si usas ISAM para aplicaciones críticas, siempre debes hacer copias de seguridad de todos tus datos en tiempo real, y MySQL puede soportar este tipo de aplicaciones gracias a su función de replicación.
2/InnoDB
Proporciona una función de control de transacciones, que garantiza que un conjunto de comandos se ejecute correctamente, o que cuando ocurre un error de comando, el resultado de todos los comandos se revierte; se puede imaginar que la capacidad de control de transacciones es muy importante en la banca electrónica. Soporte para COMMIT, ROLLBACK y otras funciones de transacciones. La última versión de Mysql ya planea eliminar el soporte para BDB en favor de InnoDB.
MyIASM es una nueva versión de las tablas IASM con las siguientes extensiones: Portabilidad a nivel binario. Índice de columna NULL. Hay menos fragmentos para filas variables que para tablas ISAM. Soporte para archivos grandes. Mejor compresión del índice. ¿Es mejor tener una distribución estadística? Mejor y más rápido auto_increment procesamiento.
Aquí tienes algunos detalles y diferencias específicas en la implementación:
1. InnoDB no admite índices de tipo FULLTEXT. 2. Las tablas no se guardan en InnoDB filas específicas, es decir, ejecutan select count(*) desde Tabla, InnoDB escanea toda la tabla para calcular cuántas filas hay, pero MyISAM simplemente lee las filas guardadas. Nótese que cuando la sentencia count(*) contiene donde condición, el funcionamiento de ambas tablas es el mismo. 3. Para campos de AUTO_INCREMENT tipo, el índice con solo ese campo debe incluirse en InnoDB, pero en la tabla MyISAM es posible crear un índice federado con otros campos. 4.BORRAR Tabla FROM, InnoDB no recrea la tabla, sino que la elimina línea por fila. 5. TABLA DE CARGA DESDE La operación MASTER no funciona para InnoDB, la solución es cambiar primero la tabla InnoDB a la tabla MyISAM, importar los datos y luego cambiarla a la tabla InnoDB, pero no es aplicable a tablas que usan funciones adicionales de InnoDB (como claves extranjeras).
Además, el bloqueo de fila de una tabla InnoDB no es absoluto; si MySQL no puede determinar el alcance a escanear al ejecutar una sentencia SQL, la tabla InnoDB también bloqueará toda la tabla, como en update conjunto de tabla num=1 donde nombre como "a%"
Ninguna tabla es omnipotente, solo eligiendo el tipo de tabla adecuado para el tipo de negocio podemos maximizar las ventajas de rendimiento de MySQL.
MySQL Cuando el Administrador crea una base de datos, la tabla se coloca por defecto en el tipo InnoDB.
En noDB, mi ISAM ¿Cuál es la diferencia entre los dos tipos? El tipo MyISAM no soporta procesamiento avanzado como el procesamiento de transacciones, mientras que el tipo InnoDB sí. Las tablas del tipo MyISAM enfatizan el rendimiento, que funciona varios grados más rápido que el tipo InnoDB, pero no proporciona soporte transaccional, mientras que InnoDB ofrece funciones avanzadas de base de datos como soporte transaccional, claves extranjeras, etc.
Los archivos de datos binarios tipo MyISAM pueden migrarse entre diferentes sistemas operativos. Es decir, puede copiarse directamente del sistema Windows al sistema Linux.
Modifica el tipo de motor de la tabla:
ALTER TABLE tablename ENGINE = MyISAM ;
MyISAM:,它是基于传统的ISAM类型,ISAM是Indexed Método de acceso secuencial Es el método estándar para almacenar registros y archivos. En comparación con otros motores de almacenamiento, MyISAM tiene la mayoría de las herramientas para revisar y reparar tablas. Las tablas MyISAM pueden comprimirse y soportan búsqueda en texto completo. No son seguros transaccionalmente y no soportan claves extranjeras. Si algo se retrocede, causará un retroceso incompleto y no es atómico. Si se llevan a cabo un gran número de ejecuciones TheSELECT, MyISAM es la mejor opción.
InnoDB:这种类型是事务安全的.它与BDB类型具有相同的特性,它们还支持外键.InnoDB表格速度很快.具有比BDB还丰富的特性,因此如果需要一个事务安全的存储引擎,建议使用它.如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表,
Para los tipos de InnoDB que soportan cosas, la principal razón que afecta a la velocidad es que la configuración por defecto AUTOCOMMIT está activada y el programa no llama explícitamente a BEGIN Inicia una transacción, lo que resulta en un commit automático para cada inserción, lo que afecta seriamente a la velocidad. Puedes llamar a start antes de que SQL se ejecute, y múltiples SQL forman una cosa (incluso si se activa el autocommit también se puede activar), lo que mejorará mucho el rendimiento.
1. Ver la información de la tabla, incluyendo el tipo de motor utilizado, codificación de caracteres, estructura de la tabla, etc
Usa este comando
Mysql> mostrar crear tabla T1; --t1 es el nombre de la tabla
2. Se puede ejecutar el siguiente comando para cambiar las tablas no transaccionales a transacciones (los datos no se pierden), las tablas innodb son más seguras que las tablas myisam: Alter Table T1 tipo=innodb; --t1 es el nombre de la tabla
3. La tabla innodb no puede table_name con el comando de tabla de reparación ni con myisamchk -r Pero puedes usar una tabla de control t1, y mysqlcheck [OPTIONS] [tablas]
4. Se han añadido los siguientes parámetros a la línea de comandos para iniciar la base de datos mysql y así hacer que todas las tablas de datos mysql recién lanzadas usen por defecto transacciones ( Solo afecta a la sentencia create. ) --default-table-type=InnoDB
5. Cambiar temporalmente el tipo de tabla por defecto puede hacerse mediante: set table_type=InnoDB;
MyISAM Ventajas: alta velocidad, menos espacio en disco ocupado; El uso del disco de una base de datos o tabla puede determinarse comprobando el tamaño del archivo correspondiente (carpeta) por el sistema operativo o utilizando la instrucción SQL MOSTRAR ESTADO DE LA TABLA Contras: No hay mecanismo de integridad de datos, es decir, no hay soporte para transacciones y claves foráneas
InnoDB Ventajas: Soporte para transacciones y claves extranjeras, y mecanismo completo de integridad de datos. Puedes usar MOSTRAR ESTADO DE LA TABLA para comprobar la ocupación de disco de una biblioteca o tabla Desventajas: velocidad ultralenta, gran espacio en disco ocupado; Todas las bibliotecas se almacenan en uno (normalmente) o varios archivos, y el sistema operativo no puede determinar cuánto espacio tiene una biblioteca o tabla
BDB Ventajas: Soporta transacciones, no soporta claves extranjeras, porque en base al soporte de transacciones, las claves extranjeras pueden implementarse indirectamente en el lado del cliente de la base de datos (que puede ser el lado servidor del cliente final, como PHP), por lo que la integridad de los datos sigue garantizada; Desventajas: baja velocidad, alto uso de disco; No puedes consultar la ocupación de espacio de una base de datos o tabla a través de MOSTRAR ESTADO DE LA TABLA. El sistema operativo puede entender el tamaño de la carpeta correspondiente de la biblioteca o del archivo correspondiente de la tabla, pero dado que la tabla BDB siempre tiene que generar un archivo de registro, y la ocupación real del disco debe incluir el archivo de registro, el tamaño de una biblioteca o tabla siempre es menor que el espacio real ocupado por el sistema operativo.
|