miércoles, 7 de mayo de 2014

Motores de Almacenamiento de MySQL


MySQL soporta varios motores de almacenamiento 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:
  • MyISAM trata tablas no transaccionales, proporciona almacenamiento y recuperación de datos rápida, así como posibilidad de búsquedas fulltext. MyISAM se soporta en todas las configuraciones MySQL y fue el motor de almacenamiento por defecto hasta la versión 5.5 de MySQL.
  • El motor de almacenamiento MEMORY proporciona tablas en memoria. El motor de almacenamiento MEMORY anteriormente se conocía como HEAP.
  • Los motores de almacenamiento InnoDB y BDB proporcionan tablas transaccionales. InnoDB se incluye por defecto en todas las distribuciones binarias de MySQL 5.5
Si omite la opción ENGINE o TYPE, se usa el motor de almacenamiento por defecto. Puede cambiarlo modificando la variable de sistema “storage_engine” o “table_type” en el archivo de configuración del MySQL. Una base de datos puede contener tablas de distintos tipos.

Ventajas de las Tablas transaccionales sobre las no transaccionales
Las tablas transaccionales (TSTs) tienen varias ventajas sobre las no transaccionales (NTSTs):
  • Más seguras. Incluso si MySQL se cae o tiene problemas de hardware, se pueden recuperar los datos, mediante recuperación automática o desde una copia de seguridad.
  • Puede ejecutar ROLLBACK para ignorar los cambios (si autocommit está desactivado).
  • Si falla una actualización, todos los cambios se deshacen. (Con tablas no transaccionales, todos los cambios son permanentes.)
  • Motores de almacenamiento transaccionales proporcionan mejor concurrencia para tablas que tienen varias actualizaciones concurrentes con lecturas.
Ventajas de las tablas no transaccionales sobre las transaccionales
Las tablas no transaccionales tienen varias ventajas al no tener una sobrecarga transaccional:
  • Más rápidas
  • Menor requerimiento de espacio.
  • Menos memoria para actualizaciones


Diferencias entre el Motor de almacenamiento MyISAM e InnoDB
InnoDB
  • Soporte de transacciones
  • Posee las características ACID (Atomicity, Consistency, Isolation and Durability: Atomicidad, Consistencia, Aislamiento y Durabilidad en español) garantizando la integridad de las tablas.
  • Recomendable para aplicaciones en las que dominan las instrucciones INSERT y UPDATE.
MyISAM
  • No soporta transacciones
  • No Bloquea registros.
  • Mayor velocidad en general a la hora de recuperar datos.
  • Ausencia de características de las caracteristicas ACID. Como no hace comprobaciones de integridad referencial, ni bloquea tablas para realizar las operaciones tiene como resultado el primer punto: mayor velocidad.
  • Recomendable para aplicaciones en las que dominan las sentencias SELECT ante los INSERT / UPDATE.
Características del motor de almacenamiento InnoDB
  • InnoDB dota a MySQL de un motor de almacenamiento transaccional (conforme a ACID) con capacidades de commit (confirmación), rollback (cancelación) y recuperación de fallas.
  • InnoDB realiza bloqueos a nivel de fila, estas características incrementan el rendimiento y la capacidad de gestionar múltiples usuarios simultáneos.
  • InnoDB también soporta restricciones FOREIGN KEY. En consultas SQL, aún dentro de la misma consulta, pueden incluirse libremente tablas del tipo InnoDB con tablas de otros tipos.
  • InnoDB se diseñó para obtener el máximo rendimiento al procesar grandes volúmenes de datos.
  • Probablemente ningún otro motor de bases de datos relacionales en disco iguala la eficiencia en el uso de CPU.
  • Las tablas InnoDB pueden ser de cualquier tamaño, aún en sistemas operativos donde el tamaño de los ficheros se limita a 2GB.

No hay comentarios:

Publicar un comentario