Motor de base de datos
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
Es el motor
de almacenamiento por defecto. por el sistema administrador de bases de datos relacionales
MySQL.
Se basa en
el código ISAM pero tiene muchas extensiones útiles.
Cada tabla MyISAM se almacena en
disco en tres ficheros. Los ficheros tienen nombres que comienzan con el nombre
de tabla y tienen una extensión para indicar el tipo de fichero. Un fichero .frm almacena la definición de tabla. El fichero
de datos tiene una extensión .MYD (MYData) . El fichero
índice tiene una extensión .MYI (MYIndex) .
InnoDB
Es una tecnología de
almacenamiento de datos de código
abierto para la base de datos MySQL,
incluido como formato de tabla estándar en todas las distribuciones de MySQL AB.
Su característica
principal es que soporta transacciones
de tipo ACID y bloqueo de registros e integridad
referencial. InnoDB ofrece una fiabilidad y consistencia muy
superior a MyISAM
Transacciones tipo ACID.
En sus siglas en Ingles:
Atomicity = Atomicidad
Consistency =
Consistencia
Isolation = Aislamiento
Durability = Durabilidad
Estas cuatros características de los sistemas gestores de
bases de datos se suelen resumir con el acrónimo ACID.
En las base de datos se
denomina ACID a un conjunto de
características necesarias para que una serie de instrucciones puedan ser
consideradas como una transacción
características ACID.
·
Atomicidad: es la propiedad que asegura que la operación se ha realizado o no, y
por lo tanto ante un fallo del sistema no puede quedar a medias.
·
Consistencia: es la propiedad que asegura que sólo se empieza aquello que se puede
acabar. Por lo tanto se ejecutan aquellas operaciones que no van a romper la
reglas y directrices de integridad de la base de datos.
·
Aislamiento: es la propiedad que asegura que una operación no puede afectar a otras.
Esto asegura que la realización de dos transacciones sobre la misma información
sean independientes y no generen ningún tipo de error.
·
Durabilidad: es la propiedad que asegura que una vez realizada la operación, ésta
persistirá y no se podrá deshacer aunque falle el sistema.
Cumpliendo estas 4 condiciones
se considera ACID Compliant
Otra característica destacable de una transacción es su durabilidad. Esta garantiza que, en el
instante en el que se finaliza la transacción, esta perdura.
Un sistema de transacciones debe garantizar el aislamiento. El aislamiento es la
garantía de que los cambios hechos dentro de cualquier transacción son
invisibles al resto los usuarios, mientras esta no haya concluido.
Diferencia entre MyISAM y InnoDB.
MyISAM
MyISAM es el motor de almacenamiento por default y
está basado en el probado ISAM, incorporando nuevas características pero
conservando su fiabilidad.
MyISAM almacena la información en tres archivos por
tabla, uno para el formato de tabla, otro para los datos y un tercer archivo
para los índices.
Las tablas MyISAM soportan un número de filas
máximo de aproximadamente ~4.295E+09 y puede tener hasta 64 archivos índices
por tabla.
Los campos Text y Blob pueden ser indexados
completamente, lo que es de gran importancia para funciones de búsqueda.
InnoDB
InnoDB es relativamente nuevo comparado con MyISAM.
Una de las principales diferencias de InnoDB es el soporte de transacciones e
integridad referencial.
InnoDB provee bloqueo a nivel final, en contra del
bloqueo a nivel tabla de MyISAM. Esto es, que mientras una consulta está
actualizando o insertando una fila, otra consulta puede actualizar una fila
diferente al mismo tiempo. Estas características incrementan la performance en
concurrencia de múltiples usuarios.
Otra de las principales características es que
permite definir Foreign Key Constraints, lo que permite a los desarrolladores
asegurarse que los datos insertados con referencia a otra tabla permanecerán
válidos (lo que se conoce como integridad referencial).
Comparacion:
MyISAM, en la mayoría de los casos será más rápido que InnoDB en
selecciones, actualizaciones e inserciones bajo circunstancias normales.
InnoDB también es un motor de almacenamiento ágil, pero se
destaca porque incorpora características como bloqueo a nivel filas,
transacciones y diseño de tablas relacionales. Aunque la primera de las
características nombradas solo se destaca en tablas que son “martilladas”
constantes, como por ejemplo una tabla de logs, para el resto de los casos, un
bloqueo a nivel tabla es suficiente en condiciones normales.
InnoDB se recupera de errores o reinicios no esperados del
sistema a partir de sus logs, mientras que MyISAM requiere una exploración,
reparación y reconstrucción de índices de los datos de las tablas que aun no
habían sido volcadas a disco.
¿Cómo
podemos activar innoDB?
Para
activarlo debemos editar el fichero de configuración de MySQL: my.cnf que
dependiendo de nuestro sistema operativo estará en uno u otro sitio.
En window
podemos encontrarlo en mysql/bin y en linux dentro de la carpeta etc
de nuestra instalación.
Abriendo
este fichero, tendremos que comentar la línea donde aparece “skip-innodb’ y
descomentar las siguientes líneas, quedando de la siguiente forma:
# Comment
the following if you are using InnoDB tables
#skip-innodb
innodb_data_home_dir
= "D:/xampplite/mysql/"
innodb_data_file_path
= ibdata1:10M:autoextend
innodb_log_group_home_dir
= "D:/xampplite/mysql/"
innodb_log_arch_dir
= "D:/xampplite/mysql/"
## You can
set .._buffer_pool_size up to 50 - 80 %
## of RAM
but beware of setting memory usage too high
innodb_buffer_pool_size
= 16M
innodb_additional_mem_pool_size
= 2M
## Set
.._log_file_size to 25 % of buffer pool size
innodb_log_file_size
= 5M
innodb_log_buffer_size
= 8M
innodb_flush_log_at_trx_commit
= 1
innodb_lock_wait_timeout = 50
Reiniciamos
nuestro MySQL y ya tendremos soporte innoDB en nuestra instalación Xampp.
NOTA: Esto se puede aplicar a casi
cualquier instalación de MySQL, pero en nuestro caso se ha utilizado Xampp.
No hay comentarios:
Publicar un comentario