El Motor de base de datos es el servicio principal para almacenar, procesar y proteger los datos. El Motor de base de datos proporciona acceso controlado y procesamiento de transacciones rápido para cumplir con los requisitos de las aplicaciones consumidoras de datos más exigentes de su empresa.
Use Motor de base de datos para crear bases de datos relacionales para el procesamiento de transacciones en línea o datos de procesamiento analíticos en línea. Se pueden crear tablas para almacenar datos y objetos de base de datos como índices, vistas y procedimientos almacenados para ver, administrar y proteger los datos.
MyISAM
MyISAM es la tecnología de almacenamiento de datos usada por defecto por el sistema administrador de bases de datos relacionales MySQL. Este tipo de tablas están basadas en el formato ISAM pero con nuevas extensiones. En las últimas versiones de MySQL, el motor InnoDB está empezando a reemplazar a este tipo de tablas por su capacidad de ejecutar transacciones de tipo ACID y bloqueo de registros e integridad referencial.
Cada tabla de tipo MyISAM se guarda en tres archivos. Los archivos tienen el nombre de la tabla y una extensión que indica el tipo de archivo,
- .frm almacena la definición de la tabla
- .MYD (MyData) contiene los registros de la tabla
- .MYI (MyIndex) contiene los índices de la tabla
InnoDB
InnoDB es una tecnología de almacenamiento de datos de código abierto para labase de datos MySQL, incluido como formato de tabla estándar en todas las distribuciones de MySQL AB a partir de las versiones 4.0. Su característica principal es que soporta transacciones de tipoACID y bloqueo de registros e integridad referencial. InnoDB ofrece una fiabilidad y consistencia muy superior a MyISAM, la anterior tecnología de tablas de MySQL, si bien el mejor rendimiento de uno u otro formato dependerá de la aplicación específica.
Transacciones ACID
ACID son siglas que significan Atomicity, Consistency, Isolation, Durability o, en español, Atomicidad, Consistencia, Aislamiento y Durabilidad.
En informática, ACID es un conjunto de características o propiedades que garantizan que las transacciones en una base de datos son fiables. En el contexto de bases de datos, una transacción es una única operación sobre los datos.
Un ejemplo de una transacción más compleja es la transferencia de fondos de una cuentaa otra, la cual implica múltiples operaciones individuales.
Si un sistema supera la prueba ACID, significa que es fiable.
Propiedades ACID
§ Atomicidad: cualquier cambio de estado que produce una transacción es atómico. Es decir, ocurren todos o no ocurre ninguno. En otras palabras, esta propiedad asegura que una operación se reiza o no se realiza, por lo tanto no puede quedar el sistema a medias.
§ Consistencia: propiedad que asegura que una transacción no romperá con la integridad de una base de datos, pues respeta todas las reglas y directrices de ésta.
§ Aislamiento: propiedad que asegura que no se afectarán entre sí las transacciones. En otras palabras, dos o más transacciones sobre los mismos datos no generarán un problema.
§ Durabilidad: propiedad que asegura la persistencia de una transacción, es decir, una vez que la transacción quedó aceptada no podrá deshacerse aunque falle el sistema.
Diferencias entre MyISAM e InnoDB
Ventajas de MyISAM
- Bloqueo de tablas
- Nos permite tener las características ACID (Atomicity, Consistency, Isolation and Durability: Atomicidad, Consistencia, Aislamiento y Durabilidad en español), garantizando la integridad de nuestras tablas.
- Optimizadas para realizar un gran números de SQL SELECT.
Desventajas de MyISAM
- Las tablas pueden llegar a dar problemas en la recuperación de datos.
- El bloqueo de las tablas cuando se inserta o actualiza un registro es otra posible desventaja ya que el resto de las operaciones quedarán a la espera de la inserción o actualización del registro.
Ventajas de InnoDB
- Integridad de datos, cuando los contenidos se modifican con sentencias INSERT, DELETE o UPDATE, la integridad de los datos almacenados puede perderse de muchas maneras diferentes.
- Pueden añadirse datos no válidos a la base de datos, con las tablas InnoDB es más difícil que esto ocurra.
- Mayor velocidad en general a la hora de recuperar datos.
- Recomendable para aplicaciones en las que dominan las sentencias INSERT / UPDATE.
- Ausencia de características de atomicidad ya que no tiene que hacer comprobaciones de la integridad referencial, ni bloquear las tablas para realizar las operaciones, esto nos lleva como los anteriores puntos a una mayor velocidad
Desventajas de InnoDB
- El diseño de su estructura es mucho más complejo que el diseño de una tabla MyISAM
- No soporta búsquedas full-text, que para conjuntos de datos grandes, es mucho más rápido.
- La última desventaja es su pobre rendimiento en operaciones sencillas como seleccionar datos si lo comparamos con las tablas MyISAM.
Como habilitar MyISAM e InnoDB en MySQL
MySQL soporta varios
motores de almacenamiento (storage
engine)que tratan con distintos tipos de tabla. Los motores de
almacenamiento de MySQL incluyen algunos que tratan con tablas transaccionales
y otros que no lo hacen. Normalmente se utiliza MyISAM para lecturas rápidas e
InnoDB para transacciones e integridad referencial. Si deseamos cambiar el
motor por defecto para la creación de nuevas tablas en MySQL, debemos añadir la
siguiente línea al ficher my.cnf (Unix)
o my.ini (Windows), en este caso sería para poner como motor por defecto
MyISAM:
default-storage-engine=MyIsam
Si quisieramos poner por defecto InnoDB:
Para habilitar InnoDB en MySQL existen varias opciones, en el link siguiente se muestra como:
Fuentes:
Gracias!!!
ResponderEliminar