Twitter Flickr Pinterest LinkedIn YouTube Google Maps E-mail RSS
formats

Motores de almacenamiento en Mysql. Tipos

MySQL incorpora una característica única llamada “motores de almacenamiento”, que nos permite seleccionar el tipo de almacenamiento interno de cada tabla, en base al que mejor se adecue a una situación particular. Dicha selección, la hace el desarrollador a nivel de tabla, y no afecta a la manera en que el servidor interactúa con el cliente: los comandos SQL serán los mismos sea cual sea el motor de almacenamiento escogido. El cliente no necesita saber cómo se almacenan los datos.

En este SGBDR (Sistema Gestor de Bases de Datos Relacionales) existen 9 motores de almacenamiento, además de los desarrollados por terceras partes, incorporables al servidor.

Los motores MyISAM e InnoDB son los más empleados.

También es sabido, que la mayoría no toma en cuenta el motor de almacenamiento al crear una tabla y acepta el que viene por defecto en la base de datos.

Con el fin de tomar una decisión acerca de cuál motor escoger, primero tenemos que pensar en las diferentes funcionalidades básicas en cada uno de los motores que nos permitan diferenciarlos entre ellos.

motores-mysql

En general podemos dividir la funcionalidad básica en 4 partes, campos y tipos de datos, tipos de bloqueo, indización y transacciones.

• Campos y Tipos de Datos: Aunque todos los motores soportan los tipos comunes datos, es decir, enteros, reales y caracteres, no todos los motores apoyan otros tipos de campo, en particular la BLOB “grandes objetos binarios” o tipos de texto. Otros motores pueden soportar anchura de carácter y tamaños de datos limitado.

Mientras estas limitaciones, afectan directamente a la información que tiende también a tener un efecto relacionado con los tipos de búsquedas que se realizan, o sobre los índices que se creen sobre esa información. A su vez, estas diferencias pueden afectar el rendimiento y la funcionalidad de la aplicación, es por ello que se pueden tomar decisiones acerca de la funcionalidad del motor de almacenamiento que se elija para el tipo de datos que se este almacenando.

 El Bloqueo: El bloqueo dentro de las bases de datos, define como es controlado el acceso y la actualización de información. Cuando un objeto en la base de datos está bloqueado para la actualización, otros procesos no pueden modificar o en algunos casos leer los datos hasta que la actualización ha terminado.

 Indexación: la indexación puede aumentar drásticamente el rendimiento al buscar y recuperar datos de la base de datos. Los diferentes motores de almacenamiento ofrecen diferentes técnicas de indización y algunos pueden ser más adecuados para el tipo de datos que se encuentren.

Algunos motores de almacenamiento simplemente no soportan la indexación, ya sea porque todos los que utilizan la indexación de las tablas fundamentales o porque el método de almacenamiento de datos no permite la indexación.

• Transacciones: Las transacciones proporcionan fiabilidad de los datos durante la actualización o inserción de la información permitiendo añadir datos a la base de datos, pero solo depositan estos datos cuando las condiciones y otras etapas en la ejecución de la aplicación han finalizado con éxito. Por ejemplo, cuando la transferencia de información de una cuenta a otra deberíamos usar transacciones para asegurarnos de que tanto la domiciliación bancaria de una cuenta y el crédito se ha completado correctamente. Si bien el proceso ha fallado, podríamos cancelar la transacción y los cambios se perderían. Si el proceso es completado, entonces lo confirmaríamos depositando los cambios.

Tipos de motores que podemos controlar desde la interfaz web phpMyAdmin.  Explicación detallada.

FEDERATED:

Este  motor de almacenamiento, almacena la información en tablas ubicadas un servidor remoto, en vez de local. Este proceso se realiza sin necesidad de usar replicación o cluster.

En las tablas federadas las peticiones o querys se ejecutan en el servidor remoto. Este motor no se activa por defecto en la instalación por defecto de MYSQL y hay que instalarlo ,activarlo de manera independiente. Este motor se añadió en la  versión MySQL 5.0.3.

Este motor solo funciona con Mysqk a través de la API MySQL C Cliente.

MRG_MYISAM

Motor también conocido como MERGE MYISAM. Permite utilizar una colección idéntica de tablas ISAM y emplearlas como una sola tabla. Para usar este motor, todas las tablas deben ser completamente idénticas (mismos nombres, mismos índices).

BACKHOLE

Agujero Negro. No recomendado como motor por defecto. Un motor como motor temporal, para replicación o servidores esclavos. Toda la información introducida se perderá al seleccionarle. Esta nuevo engine no escribe los datos en las tablas de MySQL, pero sí lo hace en el binary log, que es justo el log que MySQL emplea para realizar la sincronización de los datos con los esclavos. Es útil en un entorno replicado donde todas las sentencias SQL se ejecutan en todos los nodos, pero sólo se necesita algunos nodos para almacenar en realidad el resultado.

CSV

Almacena los datos en texto plano separado por comas. Puede ser manipulado por terceras aplicaciones como pueden ser las ofimáticas: ejemplo: Excel, Openoffice Calc. No soporta índices. Combina las ventajas de almacenamiento de mysql con hojas de cálculo. Este método puede producir inconsistencias a la hora de almacenar datos. Mysql como gestor de base de datos se asegura de ordenar las peticiones, si alguien abre la base de datos desde Excel, y se realizan modificaciones en la base de datos, el gestor se encarga de bloquearlas. Permite trabajo colaborativo con hojas de cálculo u otro tipo de aplicaciones que soporten CSV. Modificando la tabla en tiempo real desde una hoja de calculo.

MEMORY

Crea tablas cuyo contenido son almacenados en memoria en vez de disco duro. Los datos permanecen hasta que se apague el ordenador. Al estar la información en la memoria, el rendimiento es muy superior a los basados en disco. Utilidad: bases de datos temporales, que desaparecen cuando el servidor se apague.

ARCHIVE

El motor de almacenamiento Archivo, comprime  y descomprime los datos de las tablas cuando se escribe y lee. Soporta insert y select, pero no delete, replace y update. Hace que sean tablas aptas  para lecturas y escrituras pero no actualizaciones y borrados. Nos permite trabajar con bases muy grandes, pero con poco espacio ocupado. Usa más recursos en el computacionales en el servidor. Válido para casos donde se controla el servidor, y sus características soporten este tipo de almacenamiento.

MyISAM

Era hasta hace poco el motor por defecto hasta la llegada de INNODB. Es apto para cualquier tipo de situación. Rápido en la forma de trabajar e indexar. Permite archivos grandes. A su vez, posee limitaciones. El formato depende almacenamiento depende de la plataforma, el tamaño de la tabla es de 4GB, los índices son algo limitados.

Características de este formato:

–          Funciona muy bien en lecturas y escrituras.

–          Los campos text y Blob pueden ser indexados, interesante para funciones de búsqueda.

–          Almacena 3 archivos por tabla, uno para el formato, otro para los datos y un tercer fichero para los índices.

–          No soporta transacciones. No soporta ACID completamente, no soporta integridad referencial.

Existe una variante más sencilla y prehistórica llamada ISAM.

INNODB

Este motor es el establecido por defecto en las nuevas versiones. Posee muchas ventajas y pocas desventajas. Mayor seguridad para el usuario. Recuperación de errores graves en el sistema.

InnoDB es un mecanismo 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 a partir de las versiones 4.0.

Tiene la capacidad de bloquear tablas a nivel de fila, soporta ACID. Diseñado para un rendimiento extremo, gran velocidad. Soporta transacciones e integridad referencial. Soporta procedimientos almacenados.

Permite bloquear registros.

Soporta ACID (Atomicity, Consistency, Isolation and Durability: Atomicidad, Consistencia, Aislamiento y Durabilidad en español), garantizando la integridad de nuestras tablas.

Es probable que si nuestra aplicación hace un uso elevado de INSERT y UPDATE notemos un aumento de rendimiento con respecto a MyISAM.

Al igual que los ficheros de datos MyISAM, los ficheros de datos y de registro (log) de InnoDB son compatibles a nivel binario en todas las plataformas quee tengan el mismo formato de números de coma flotante. Se puede mover una base de batos InnoDB simplemente copiando todos los ficheros relevantes.

Desventaja:

InnoDB no dispone de la compresión de datos de la que disfruta MyISAM, de modo que tanto el espacio en disco como la caché en la memoria RAM pueden ser más grandes. Este problema se ha reducido en MySQL 5.0, reduciéndolo en aproximadamente un 20%.

PERFORMANCE_SCHEMA

El esquema de rendimiento proporciona una manera de inspeccionar la ejecución interna del servidor en tiempo de ejecución. Se lleva a cabo mediante el  motor PERFORMANCE_SCHEMA  y la performance_schema base de datos. El esquema de rendimiento se centra principalmente en almancear los datos de rendimiento. Esto difiere de INFORMATION_SCHEMA , que sirve para la inspección de metadatos.

El esquema de rendimiento supervisa los eventos del servidor. Un ” evento” es cualquier cosa que el servidor hace y ha sido instrumentado de manera que puedea ser almacenada. En general, un evento podría ser una llamada a la función, un tiempo de espera para el sistema operativo, una etapa de una ejecución de instrucciones SQL, tales como el análisis o clasificación, o una declaración completa o grupo de sentencias. En la actualidad, la recopilación de eventos proporciona acceso a la información sobre las llamadas de sincronización (como para los mutex) archivo y tabla de E / S, los bloqueos de tabla, y así sucesivamente para el servidor y para varios motores de almacenamiento.

 motores-mysql

Etiquetas:,

Usted debe ser Registrado para publicar un cometario

Home Bases de datos Motores de almacenamiento en Mysql. Tipos
© www.palentino.es, desde el 2012 - Un Blog para compartir conocimientos ...

Uso de cookies en mi sitio palentino.es

Este sitio web utiliza cookies para que tengamos la mejor experiencia de usuario. Si continúas navegando estás dando tu consentimiento para la aceptación de las mencionadas cookies y la aceptación de la política de cookies

ACEPTAR
Aviso de cookies