Blog

Lunes, 25 Julio 2022 19:54

MyISAM vs InnoDB

Escrito por 

En este post, vamos a tratar de explicar las características mas importantes que hay a la hora de trabajar con bases de datos entre los motores Myisam vs Innodb, qué ventajas tiene Myisam frente a Innodb o desventajas, así como las diferencias existentes, muy enfocado al desarrollo web.

A la hora de abarcar un proyecto web que sobre todo va a tener diversas ejecuciones o comunicaciones con bases de datos, es muy importante conocer las capacidades del servidor (alojamiento) que va a gestionar nuestro desarrollo, no solo en capacidad de almacenamiento sino también en cuanto a versión de software y base de datos que van a manejarlo.

Los motores más populares y usados en desarrollo web son MyISAM e InnoDB, su correcta elección definirá como se gestionarán los recursos en cuanto a velocidad, consumo de esos recursos y calidad de servicio.

Cada proyecto tiene su casuística, a la que debemos prestar atención, conociendo el número de usuarios que accederán o pueden acceder simultáneamente a realizar altas, bajas, etc., o bien si tenemos miles de accesos solamente a consulta.

En el presente artículo no vamos a entrar al detalle de que diseño de base de datos o sistema de desarrollo es más idoneo a la hora de manipular la información, evidentemente precisa de un capítulo a parte, pero ni que decir tiene que es un punto muy importante, el cual se ha de tratar con detenmiento.

Características de MyISAM:

  • Se establece por defecto cuando se crea una tabla, salvo que se indique lo contrario.
  • Soporta transacciones.
  • Realizar bloqueo de registros.
  • Soporta un gran número de consultas SQL, lo que se refleja en una velocidad de carga muy rápida para nuestra web.
  • Como desventaja, señalamos que no realiza bloqueo de tablas, esto puede ser un problema si como se ha mencionado anteriormente hay un acceso simultáneo al mantenimiento de registros por parte de varios usuarios.

Características de InnoDB

  • Bloqueo de registros. Importante para accesos múltiples al mantenimiento de tablas, es decir, ejecuciones de sentencias tipo INSERT o UPTATE, éstas ejecuciones tienen una velocidad optimizada.
  • Capacidad para soportar transacciones e integridad de datos, es decir previene el alta de datos no adecuados.
  • Aplica las características propias de ACID (Atomicity, Consistency, Isolation and Durability), consistentes en garantizar la integridad de las tablas.
  • Como desventaja, marcamos que al ser un tipo de motor que define un sistema más complejo de diseño de tablas, reduce el rendimiento en velocidad para desarrollo que requieren de un elevado número de consultas.

RECOMENDACIONES
Un solo gestor de mantenimiento para una plataforma que requerirá muchas consultas o visitas: MyISAM

Necesitas velocidad y mínimo consumo de recursos en servidor, espacio, RAM, etc.: MyISAM

Varios o muchos gestores de mantenimiento: InnoDB

Desarrollo donde se prioriza el diseño relacional de bases de datos: InnoDB

Independientemente del sistema que se elija, hay que hacer un buen diseño de la estructura y funcionalidad de la base de datos, si bien este tema requiere un capítulo aparte, os damos unas nociones a tener en cuenta.

La información o datos no deben almacenarse de cualquier manera. Hay que buscar el mayor aprovechamiento de los recursos que tenemos a nuestra disposición, tanto a nivel de almacenamiento como de rendimiento.

Hay que mantener la consistencia de la información durante todo el ciclo de vida de la base de datos, más aún si los datos que se manejan son críticos, por ejemplo los salarios de una organización.

Los primeros factores que realizará el analista, serán el análisis del sistema que servirá de modelo, la observación de los elementos que lo componen y la descomposición en partes mucho más pequeñas.

 

Leer 464 times
Mas en esta categoria: « Duplicando una tabla en Mysql

Sobre CNERIS

CNERIS es una empresa constituida por jóvenes emprendedores procedentes de diferentes sectores del mundo de la información. Nuestro equipo está compuesto por programadores, administradores de sistemas, administradores de base de datos, diseñadores gráficos, maquetadores,