fbpx
Wikipedia

Mecanismos de almacenamiento (MySQL)

MySQL es un gestor de bases de datos relacional de licencia GPL. Una base de datos relacional desde un punto de vista lógico usa tablas para guardar los datos. Internamente un mecanismo de almacenamiento (storage engine) es el encargado de almacenar en último término los datos de las tablas en dispositivos físicos, para que estos tengan durabilidad. El mecanismo es totalmente clave a la hora de evaluar la rapidez y las funcionalidades que puede ofrecer el SGBD. MySQL tiene la opción de incluir dinámicamente -desde MySQL 5.1- los distintos mecanismos para soportar el almacenamiento de las tablas. La mayoría de estos mecanismos se pueden instalar en desarrollos derivados de MySQL como MariaDB y Percona Server.

Módulos básicos de la arquitectura del SGBD MariaDB/MySQL

Factores diferenciadores de los mecanismos

Todo mecanismo de almacenamiento tiene unas características particulares. Las características en las que podemos encontrar diferencias entre los distintos mecanismos son principalmente:

  • Almacenamiento físico: aquí se incluye desde consideraciones del tamaño de página de tablas e índices, el soporte de almacenamiento hasta el formato de almacenamiento en disco.
  • Caché de memoria: diferentes aplicaciones responden mejor a ciertas estrategias de caché que otras, por lo que aunque algunos caché de memoria son comunes a todos los mecanismos (como los usados para conexiones de usuario o al caché de sentencias de alta velocidad), otros son particulares a cada uno de ellos.
  • Concurrecia: algunas aplicaciones necesitan granularidad de bloqueo más fina (i.e. bloqueo a nivel de fila) que otras. La elección de la estrategia de bloqueo adecuada puede reducir tiempos de espera y aumentar la prestación general. Este factor incluye las capacidades concurrencia multi-versión (MVCC) o toma de "instantáneas".
  • Integridad referencial: característica que responde a la necesidad de que el servidor asegure la integridad referencial de la base de datos mediante claves externas.
  • Particionado: algunos mecanismos permiten que diferentes secciones de una misma tabla pueden ser almacenadas en diferentes porciones de disco. Las reglas por las que se realiza este particionado se denominan funciones, que en MySQL pueden ser el módulo, lista de rangos o valores, una función de hash interna o una función lineal.
  • Prestaciones: las diferencias pueden estar causadas por los hilos múltiples para operaciones en paralelo, la concurrencia de hilos, la toma de puntos de control y el manejo de inserciones masivas.
  • Soporte de índices: diferentes aplicaciones necesitan diferentes estrategias en cuanto a índices. Cada mecanismo de almacenamiento tiene sus propios métodos de indexación -aunque los B-tree son comunes a casi todos ellos- aunque algunos carecen de índices.
  • Soporte de transacciones: no todas las aplicaciones necesitan transacciones, pero aquellas que las necesiten tendrán definidos de manera precisa los requisitos ACID que deben satisfacer los mecanismos adecuados a ellas.
  • Características varias: aquí se puede incluir soporte para operaciones geo-espaciales y restricciones de seguridad para ciertas operaciones de manipulación de datos.

Tipos de mecanismos

La comunidad MySQL ha desarrollado una gran variedad de «Motores de almacenamiento». . Algunos tienen propósito general, mientras que otros fueron desarrollados para cubrir necesidades especiales y han sido puestos a disposición pública posteriormente.

Cada mecanismo puede presentar limitaciones en cuanto a índices, tipos de los atributos, particionado, funciones SQL soportadas... por lo que es preciso consultar la documentación detallada antes de utilizarlos.

En esta recopilación se han utilizado criterios arbitrarios de agrupación y clasificación de los mecanismos, por lo que queda abierta la cuestión a sugerencias para refinar la taxonomía.

Básicos/teóricos

Aquí se incluyen los mecanismos consustanciales al desarrollo de MySQL o que tienen una aplicación académica.

Archive

El mecanismo Archive está concebido para almacenar gran volumen de datos. Soporta INSERT y SELECT, pero no DELETE, REPLACE o UPDATE. Soporta el operador ORDER BY, atributos tipo BLOB y casi todos los demás, excepto los espaciales. Implementa bloqueo a nivel de fila (tupla).

Blackhole

El mecanismo de almacenamiento Blackhole actúa como un agujero negro que acepta todo pero no lo almacena en ningún sitio. Todo intento de recuperación de información resultará infructuoso.

Al crear una tabla con el mecanismo Blackhole el servidor sí crea la definición del formato en el directorio de datos -un fichero con extensión.frm- pero no aparece ningún fichero más. Los datos de la tabla los envía todos a /dev/null. Soporta la definición de todo tipo de índices.

CSV

Este mecanismo de almacenamiento almacena los datos en ficheros de texto separados por comas. Está disponible en todas las versiones del servidor MySQL.

Cuando se crea una tabla con el mecanismo CSV el servidor crea un fichero con el formato de la tabla en el directorio de datos con extensión frm, y crea un fichero para contener los datos con extensión CSV en el que se guardan los datos de cada tupla en una línea ASCII y separados por comas.

Example

Mecanismo de almacenamiento vacío, no hace nada. Muestra un ejemplo con la arquitectura de programación adecuada para el desarrollo de nuevos mecanismos de almacenamiento. Tiene interés para desarrolladores.

Memory

Como indica la palabra, el mecanismo de almacenamiento Memory archiva las tablas en memoria volátil. Usa índices hash por defecto, lo que las hace muy rápidas de recorrer y muy útiles para crear tablas temporales. Sin embargo, cuando el servidor se apaga estas se borran. La definición de las tablas se guarda en ficheros con extensión.frm, de modo que al rearrancar el servidor las tablas estarán definidas pero vacías de datos.

Sequence

Este mecanismo de almacenamiento permite crear secuencias de números ascendentes o descendentes, empezando por uno determinado y con un incremento arbitrario.

Sirve para crear tablas virtuales efímeras cuando se necesiten. Nunca se escriben en disco ni se crean ficheros frm. Estas tablas tiene acceso solo lectura, son transaccionales y soportan XA.

El mecanismo Sequence ha sido introducido en MariaDB 10.0.3.

Tradicionales

Aquí incluimos los más o menos convencionales y más difundidos.

Aria

El mecanismo Aria nació como una alternativa a MyISAM pero resistente a caídas del sistema. Viene incorporado en la distribución MariaDB.[1]​ No tiene todavía capacidad transaccional pero está planeado añadirla en el futuro. Entre sus objetivos de diseño figuran:

  • Crear un nuevo mecanismo de almacenamiento transaccional, ACID y MVCC que forme la base tanto de MariaDB como de MySQL.
  • Reemplazar directamente a MyISAM (gracias a que Aria puede funcionar en modo no transaccional y soporta los mismos formatos que MyISAM).
  • Formar parte de manera estándar de MySQL 6.0.

Este mecanismo originalmente se llamó María, pero más tarde se le cambió el nombre por Aria para evitar confusiones con la base de datos MariaDB, la base de datos sucesora de la original MySQL y realizada por el mismo creador, Monty Widenius.

Última versión: 1.5 

BDB

La librería de funciones de bases de datos transaccionales Berkeley DB[2]​ fue desarrollada originalmente por Sleepycat y adquirida posteriormente por Oracle en 2006. Por su naturaleza, DBD ha de ser empotrada en aplicaciones ya que no se suministra interfaz de usuario.

Por ello puede utilizarse como mecanismo de almacenamiento e invocarse desde un gestor de base de datos como MySQL/MariaDB. Se incluye soporte para ella en distribuciones fuentes de MySQL y en distribuciones binarias MySQL-Max.

Las tablas BDB pueden sobrevivir a fallos del sistema. Tiene características transaccionales (COMMIT y ROLLBACK). La distribución fuente MySQL/MariaDB incluye un código BDB preparado para funcionar con MySQL, ya que no se puede usar una versión de BDB cualquiera.

Soportada solo hasta MySQL 5.0.

Última versión: 6.0 

InnoDB

InnoDB es un mecanismo de almacenamiento transaccional -con características ACID- para MySQL. Realiza bloqueo a nivel de filas y lecturas no bloqueantes MVCC tipo Oracle, lo que aumentan la concurrencia y las prestaciones.

InnoDB pertenece a Oracle Corporation tras la adquisición de Innobase Oy en octubre de 2005. Tiene licenciamiento dual: se distribuye bajo licencia GPL, pero también se licencia a empresas que la quieran incluir en su software.

  • Sigue el modelo ACID con COMMIT, ROLLBACK y recuperación de caídas.
  • Bloquea a nivel de fila (tupla), y proporciona concurrencia multiusuario para lectura.
  • Organiza los datos en disco para optimizar el uso de claves primarias.
  • Mantiene la integridad de datos mediante restricciones FOREIGN KEY, que se aplican en INSERT, UPDATE y DELETE.

InnoDB almacena los datos agrupados para reducir el flujo de entrada/salida de consultas habituales basadas en claves primarias. Se pueden combinar tablas InnoDB con tablas de otros mecanismos de almacenamiento, incluso en la misma consulta.

InnoDB fue el precursor de Falcon (por SUN, abandonado) y de XtraDB (por Percona).

MyISAM

Implementación de MySQL del original ISAM que efectúa el almacenamiento de datos de manera sencilla y robusta, y proporciona una alta velocidad de acceso y un tamaño pequeño de ficheros. El mecanismo MyISAM almacena cada tabla en tres ficheros:

  • .frm con el formato de la tabla
  • .MYD con los datos
  • .MYI con los índices

Ha sido el mecanismo de almacenamiento por defecto hasta la versión 5.1 de MySQL, y sigue siendo utilizado por la versión MySQL 5.6 para muchas tablas internas de metadatos.

PBXT

PrimeBase XT (PBXT) es un mecanismo de almacenamiento transaccional para MySQL. Usa una arquitectura basada en logs y escritura única que proporciona prestaciones óptimas en un amplio rango de situaciones. El mecanismo es enchufable, que significa que puede ser instalado dinámicamente en tiempo de ejecución en MySQL versión 5.1 o posterior.

Última versión: 1.0.11 

TokuDB

TokuDB[3]​ es un mecanismo de almacenamiento altamente escalable y sin mantenimiento que permite acelerar la indización de las sentencias SQL y la modificación en caliente de los esquemas. Proporciona altas prestaciones en entornos con carga intensiva de escritura.

Se instala como plugin y no requiere efectuar cambios en la aplicación. Tiene las características ACID implementadas mediante MVCC, con el que consigue transacciones con el nivel de aislamiento Serializable. Puede soportar la implementación de cualquier tabla, con las mismas limitaciones en cuanto a tipos soportados que MyISAM o InnoDB.

Última versión: 5.6.26-74.0 

XtraDB

Versión mejorada del mecanismo de almacenamiento InnoDB, y mecanismo de almacenamiento por defecto en el clon de MySQL desarrollado por Percona. Tiene mejores prestaciones que InnoDB y mejor escalabilidad en hardware moderno, útil en entornos con carga alta. Es compatible con InnoDB, de modo que lo puede reemplazar directamente.

Desarrollado por Percona, XtraDB incluye las características ACID de InnoDB basadas en una arquitectura MVCC avanzada. Se caracteriza por su adaptabilidad, métricas y escalabilidad. En particular está diseñado para escalar mejor que InnoDB en CPU con núcleos múltiples, hacer un más eficiente uso de memoria y tener más usabilidad.

Este mecanismo no está disponible para descarga independiente, solo se halla incorporado en MariaDB y Percona.

Distribuidos

Aquellos que están distribuidos sobre una serie de nodos.

Columnstore

Almacenamiento de columnas basado en InfiniDB 4.6.7. Diseñado para su uso en big data que puede escalar linealmente hasta petabytes y proporciona altas prestaciones, adecuada para proceso analítico. Potencia las ventajas del almacenamiento en columnas, efectúa compresión y permite particionado horizontal y vertical proporcionando buenas prestaciones a la hora de analizar grandes conjuntos de datos. Está disponible en MariaDB 10.1 y 10.2.

Última versión: 1.2 

Spider

El mecanismo de almacenamiento Spider[4]​ ofrece las siguientes características:

  • permite usar tablas de otro servidor MySQL como una tabla local
  • potencia las características de otros mecanismos de almacenamiento por cooperación
  • soporta transacciones XA
  • puede particionar tablas de otros servidores MySQL

Está incorporado en la distribución 10.0.4 de MariaDB.

Última versión: 3.2.37 (gamma) 

Puente con otras bases de datos

Se repasan aquellos que en cierto modo permiten usar una tercera base de datos desde el interfaz MySQL.

Connect

El objetivo principal de este mecanismo es el de conectar a MariaDB a una gran cantidad de datos no relacionales -generalmente en ficheros planos- para procesos BI sin necesidad de complejas soluciones ETL.

Este mecanismo cubre todas las funcionalidades de CSV + FEDERATED + MERGE sin ninguna de sus limitaciones. También abarca más fuentes de datos (XML, dbase, ODBC...). La implementación usa características avanzadas para indización, compresión y filtrado de condiciones. Está por ello enfocado a BI, más que a OLTP.

Puede acceder a tablas localizadas en cualquier servidor local o remoto, y el tipo de datos de las columnas puede ser convertido sobre la marcha.

Última versión: 1.04.0005 (beta) 

IBMDB2I

IBM proporciona un mecanismo de almacenamiento para IBM serie i (antiguo AS/400). Con ese mecanismo las aplicaciones escritas para MySQL pueden correr en la serie i IBM almacenando datos en DB2. Esto permite implementar aplicaciones MySQL transaccionales y en línea almacenando los datos en un entorno DB2 único y fácil de gestionar.[5]

InfiniDB

Desarrollado por Calpont,[6]​ el mecanismo de almacenamiento InfiniDB no se halla disponible por separado, sinó que utiliza MySQL como frontal formando un RDBMS completo. Consigue así una base de datos analítica orientada a columnas, especializada de data warehouse y aplicaciones de lectura intensiva.

InfiniDB usa el frontal MySQL para el proceso sintáctico de SQL (parsing), seguridad y otras tareas administrativas. Todo el entorno gráfico, gestión de comandos, herramientas de desarrollo, complementos BI, IDEs, conectores y drivers que funcionen con MySQL también lo harán con InfiniDB.

Última versión: 2.2.11 

Infobright

Infobright ha desarrollado una base de datos analítica de altas prestaciones orientada al manejo de grandes volúmenes de datos de negocio. La versión 4.0 con tecnología DomainExpert permite analizar en tiempo real "Big Data" con optimizadores específicamente diseñados para datos generados automáticamente.

Infobright implementa una base de datos analítica orientada a columnas, rápida y eficiente. Proporcionando una compresión media de 10:1, permite el tratamiento multidimensional de los datos. Es fácil de instalar y gestionar, y existe tanto una Community Edition (ICE) como una Enterprise Edition (IEE).

Su integración como mecanismo de almacenamiento en MySQL permite el acceso de los usuarios de este SGBDR y a herramientas avanzadas de BI.

Última versión: 4.0.7 

Mdbtools

Mecanismo de almacenamiento que permite acceso de solo lectura a bases de datos MicroSoft Access (ficheros con extensión.mdb). Ver detalles del proyecto en «Sourceforge». 

Última versión: 0.6 

MyRocks

La base de datos RocksDB está basada en LevelDB y mantenida por Facebook Database Engineering Team. Este mecanismo de almacenamiento está optimizado para funcionamiento rápido con baja latencia, como discos flash y discos de alta velocidad. Explota el potencial de la alta velocidad de lectura y escritura mediante el almacenamiento de datos de log a alta velocidad en árboles LSM. Consigue el doble de compresión que InnoDB y el triple que almacenamiento sin compresión.

SphinxSE

Existe una base de datos textual llamada Sphinx que funciona como un DBMS independiente. Esta base de datos fue diseñada especialmente para integrarse de modo fácil con bases de datos SQL que contuvieran los textos, y poderse emplear con lenguajes de scripting.

Los dos componentes principales de sphinx son:

  • indexer: utilidad para crear índices de texto completo
  • searchd: proceso que permite la conexión de programas externos

SphinxSE es un mecanismo que conecta sphinx con MySQL u otras bases de datos SQL, y que puede ser incorporado en los servidores MySQL a partir de la versión 5.1 mediante su arquitectura de módulos enchufables. SphinxSE no almacena datos por sí mismo, funciona como un cliente integrado que permite al servidor MySQL comunicarse con el componente de sphinx searchd para realizar búsquedas y obtener los resultados. La búsqueda e indexación la realiza el cliente Sphinx de SphinxSE para MySQL.

Última versión: 2.2.6 

Interfaz con bases de datos no SQL

Por su especial relevancia se desglosan los mecanismos de almacenamiento que constituyen el núcleo de bases de datos no SQL y se pueden utilizar desde MySQL.

Cassandra SE

El principal objetivo del mecanismo de almacenamiento Cassandra SE[7]​ es la integración de datos entre el mundo SQL y el NoSQL al que pertenece la base de datos Cassandra. Permite:

  • capturar datos de Cassandra desde el frontal web o sentencia SQL
  • insertar registros en Cassandra desde una aplicación

La base de datos Cassandra utiliza el lenguaje CQL, pero en MariaDB 10.0 será posible interrogarla utilizando SQL. Esto permite que las columnas de Cassandra aparezcan como tablas en las que se pueden realizar INSERT, UPDATE o SELECT. Es posible también escribir JOIN incluyendo tablas que usen otros mecanismos de almacenamiento.

El mecanismo viene enlazado estáticamente en la versión preliminar 5.5.25 de MariaDB y forma parte de la versión MariaDB 10.0.1.

Última versión: 1.8 (experimental) 

MemcacheDB

Se trata de un mecanismo de almacenamiento persistente para pares clave-valor distribuido, que se ajusta al protocolo memcached, por lo que es accesible por cualquier cliente que cumpla ese protocolo.

MemcacheDB usa Berkeley DB como base de almacenamiento, por lo que soporta las características de transacción y replicación.

Última versión: 1.2.1-beta 

En red

Aquí se mencionan los mecanismos que permiten distribuir los datos -para lectura o escritura- entre más de un nodo físico.

AWSS3 (†)

Simple Storage Service (S3) es un mecanismo de almacenamiento sobre Internet proporcionado como servicio web por Amazon. Este mecanismo permite crear un almacenamiento para MySQL sobre S3 a través de la web.

Amazon S3 proporciona una sencilla interfaz de servicios web que puede utilizarse para almacenar y recuperar la cantidad de datos que desee, cuando desee, y desde cualquier parte de la web. Concede acceso a todos los usuarios a la misma infraestructura a un precio económico, altamente escalable, fiable, segura y rápida que utiliza Amazon para tener en funcionamiento su propia red internacional de sitios web. Este servicio tiene como fin maximizar las ventajas del escalado y trasladar estas ventajas a los usuarios finales.

Última versión: 0.06 (descontinuado, continúa con ClouSE) 

ClouSE

ClouSE[8]​ es un mecanismo de altas prestaciones y alta fiabilidad que usa el servicio web de Amazon S3 para almacenar los datos.

Presenta estas características:

  • transaccional con características ACID, permitiendo commit, rollback y recuperación frente a caídas
  • utiliza almacenamiento en cloud
  • proporciona cifrado de datos con AES-256
  • permite el acceso directo a contenido blob
Última versión: 1.0b.1.8 

Federated (†)

El mecanismo Federated permite guardar los datos de una tabla en otro servidor MySQL remoto, a través de la red. Al realizar una consulta los datos se extraen de ese servidor. No se guardan datos en el servidor local, solo el fichero de formato.frm. El mecanismo de almacenamiento usado por el servidor remoto puede ser cualquiera de los que soporte este.

(descontinuado, continúa con FederatedX) 

FederatedX

Es un proyecto que continúa el desarrollo del mecanismo de almacenamiento Federated. Se basa en el código de este último disponible en la versión MySQL 5.1.

Cuenta con muchas peticiones de nuevas características y de corrección de errores de Federated que llevaban algún tiempo esperando. El mecanismo FederatedX se plantea incorporar estas características:

  • Soportar ODBC, además de libmysql
  • Aceptar conexiones múltiples
  • Soportar transacciones
  • Permitir restricciones como LIMIT, columnas no indexadas
Última versión: 0.1 

Merge

El mecanismo de almacenamiento Merge -anteriormente conocido como MRG_MyISAM- agrupa un conjunto de tablas basadas en el mecanismo MyISAM idénticas y las presenta como una sola. Las tablas que se agrupan han de ser idénticas tanto en campos como en índices.

Si no se especifica INSERT_METHOD en su creación no se permiten las inserciones. Se puede especificar que estas se realicen en la primera o última tabla de la unión.

NDB

NDBCLUSTER es una base de datos desarrollada originalmente por Ericcson para uso en sus redes de telefonía basadas en la central AXE.[9]​ En su origen estaba pensada como una base de datos distribuida geográficamente a nivel regional.

Aunque puede funcionar de manera autónoma, NDB fue adaptada para su uso por MySQL Cluster como otro mecanismo de almacenamiento y así distribuir tablas entre varios ordenadores. Está disponible desde la versión binaria de MySQL 5.0, y soportado en muchas plataformas Unix. En modo experimental se distribuye para Windows a partir de Cluster NDB 7.0.

Última versión: 7.3 

ScaleDB

ScaleDB es un mecanismo de almacenamiento enchufable para MySQL, que lo escala para poder disponer de la potencia del cloud computing, ya sea esta pública, privada o interna a la empresa. Es un mecanismo pionero del NewSQL, que ofrece las ventajas de SQL y NoSQL, al mismo tiempo que permite el funcionamiento in the cloud.

Proporciona:

  • Indexación a alta velocidad
  • Simplicidad Plug-and-Cluster™
  • Recuperación automática de datos
  • Características ACID
  • Arquitectura con todo compartido
  • Altas prestaciones en el proceso de transacciones
  • Tolerancia a fallos
  • Bloqueo a nivel de filas
  • Control de concurrencia multi-nodo
  • Elimina el requisito de particionar los datos
Última versión: beta 

Exóticos

Se recogen finalmente aquellos mecanismos que tienen difícil clasificación en las anteriores categorías o un uso muy específico.

DDE-GAN

El mecanismo DDE-GAN[10]​ optimiza el acceso a los datos sobre una red global (GAN). La localización de los datos se basa en métodos estadísticos de predicción para optimizar el acceso por los nodos. Cada nodo solo contiene un subconjunto de los datos. Optimizando la localización de los datos en el cluster se minimizan los costes de comunicación. Permite construir una based de datos distribuida a nivel mundial.

Última versión: 0.2-alpha 

Mroonga

Un mecanismo de almacenamiento para caracteres CJK (chino, japonés & coreano) basado en groonga,[11]​ un motor de búsqueda textual.

A partir de que se introdujeran los mecanismos de almacenamiento enchufables en MySQL 5.1, se puede usar Mroonga fácilmente desde MariaDB 5.3.

MyBS

El mecanismo MyBS transforma a MySQL en un servidor escalable de contenidos digitales capaz de almacenar películas, vídeos, sonido y cualquier otro objeto binario (BLOB) directamente en la base de datos.

OQGraph

El mecanismo de almacenamiento OQGraph (Open Query GRAPH) permite manejar estructuras jerárquicas -en árbol- y también grafos genéricos. OQGraph está especialmente indicado para manejar relaciones n:m.

Última versión: Mk.II 

Q4M

Implementa una cola de mensajes que funciona como un mecanismo de almacenamiento enchufable a Mysql 5.1 o posteriores, diseñado pensando en la robustez, rapidez y flexibilidad. Está en fase de producción y es empleado en multitud de servicios web

Última versión: 0.9.5 

RitmarkFS

Permite trabajar con sistemas de ficheros directamente desde MySQL. Puede también acceder discos sin formato.

Tabla comparativa

Se comparan los mecanismos de almacenamiento más utilizados, en esta tabla adaptada de MySQL[12]

Característica MyISAM Memory InnoDB Archive NDB
Límite de almacenamiento 256 TB Sistema[nota 1] 64 TB Dispositivos[nota 2] 384 EB
Soporta transacciones No No No
Granularidad de bloqueo Tabla Tabla Fila Fila Fila
MVCC No No
Claves externas No No No [nota 3]
Soporta tipos espaciales No
Soporta índices espaciales No No No No
Índices binarios No
Índices hash No No No
Índices texto completo No No No No
Agrupación de índices No No No No
Cache de datos No N/A No
Cache de índices N/A No
Compresión de datos [nota 4] No [nota 5] No
Soporta cluster No No No No
Recuperación frente a caídas No No No
Cache de consultas
Estadísticas del diccionario de datos

En todos los casos el cifrado de datos, la replicación y las operaciones de Backup/recuperación puntual se realizan por el servidor y son independientes del mecanismo de almacenamiento.

Notas a la tabla

  1. Limitado por la memoria direccionable por el HW/sistema operativo
  2. Limitado por la capacidad de los dispositivos de almacenamiento externos y el sistema operativo
  3. A partir de la versión 7.3
  4. Se comprimen mediante la aplicación myisampack, quedando la tabla disponible en modo solo lectura
  5. Requiere el formato Barracuda y la opción fichero por cada tabla

Referencias

  1. (en inglés). Monty program. Archivado desde el original el 20 de febrero de 2012. Consultado el 23 de febrero de 2012. 
  2. «Berkley DB» (en inglés). Oracle. Consultado el 19 de octubre de 2012. 
  3. «TokuDB Release Notes» (en inglés). Tokutek. Consultado el 28 de enero de 2013. 
  4. «Spider for MySQL» (en inglés). Kentoku SHIBA. Consultado el 12 de octubre de 2012. 
  5. «Using IBM DB2 for i as a Storage Engine of MySQL» (en inglés). IBM red books. Consultado el 19 de enero de 2012. 
  6. (en inglés). Calpont. Archivado desde el original el 23 de septiembre de 2012. Consultado el 17 de octubre de 2012. 
  7. (en inglés). Ask Monty. Archivado desde el original el 16 de septiembre de 2012. Consultado el 12 de octubre de 2012. 
  8. (en inglés). Oblaksoft. Archivado desde el original el 15 de octubre de 2012. Consultado el 11 de octubre de 2012. 
  9. «The Ericsson Network Database (NDB) Cluster» (en inglés). Ericsson. Consultado el 6 de noviembre de 2012. 
  10. (en inglés). DDE engine. Archivado desde el original el 12 de mayo de 2012. Consultado el 12 de octubre de 2012. 
  11. «Groonga, an open-source fulltext search engine and column store» (en inglés). Groonga. Consultado el 27 de enero de 2012. 
  12. «Storage Engines – MySQL 5.6. reference manual» (en inglés). Oracle. Consultado el 29 de enero de 2013. 
  •   Datos: Q5155760

mecanismos, almacenamiento, mysql, mysql, gestor, bases, datos, relacional, licencia, base, datos, relacional, desde, punto, vista, lógico, tablas, para, guardar, datos, internamente, mecanismo, almacenamiento, storage, engine, encargado, almacenar, último, té. MySQL es un gestor de bases de datos relacional de licencia GPL Una base de datos relacional desde un punto de vista logico usa tablas para guardar los datos Internamente un mecanismo de almacenamiento storage engine es el encargado de almacenar en ultimo termino los datos de las tablas en dispositivos fisicos para que estos tengan durabilidad El mecanismo es totalmente clave a la hora de evaluar la rapidez y las funcionalidades que puede ofrecer el SGBD MySQL tiene la opcion de incluir dinamicamente desde MySQL 5 1 los distintos mecanismos para soportar el almacenamiento de las tablas La mayoria de estos mecanismos se pueden instalar en desarrollos derivados de MySQL como MariaDB y Percona Server Modulos basicos de la arquitectura del SGBD MariaDB MySQL Indice 1 Factores diferenciadores de los mecanismos 2 Tipos de mecanismos 2 1 Basicos teoricos 2 1 1 Archive 2 1 2 Blackhole 2 1 3 CSV 2 1 4 Example 2 1 5 Memory 2 1 6 Sequence 2 2 Tradicionales 2 2 1 Aria 2 2 2 BDB 2 2 3 InnoDB 2 2 4 MyISAM 2 2 5 PBXT 2 2 6 TokuDB 2 2 7 XtraDB 2 3 Distribuidos 2 3 1 Columnstore 2 3 2 Spider 2 4 Puente con otras bases de datos 2 4 1 Connect 2 4 2 IBMDB2I 2 4 3 InfiniDB 2 4 4 Infobright 2 4 5 Mdbtools 2 4 6 MyRocks 2 4 7 SphinxSE 2 5 Interfaz con bases de datos no SQL 2 5 1 Cassandra SE 2 5 2 MemcacheDB 2 6 En red 2 6 1 AWSS3 2 6 2 ClouSE 2 6 3 Federated 2 6 4 FederatedX 2 6 5 Merge 2 6 6 NDB 2 6 7 ScaleDB 2 7 Exoticos 2 7 1 DDE GAN 2 7 2 Mroonga 2 7 3 MyBS 2 7 4 OQGraph 2 7 5 Q4M 2 7 6 RitmarkFS 3 Tabla comparativa 3 1 Notas a la tabla 4 ReferenciasFactores diferenciadores de los mecanismos EditarTodo mecanismo de almacenamiento tiene unas caracteristicas particulares Las caracteristicas en las que podemos encontrar diferencias entre los distintos mecanismos son principalmente Almacenamiento fisico aqui se incluye desde consideraciones del tamano de pagina de tablas e indices el soporte de almacenamiento hasta el formato de almacenamiento en disco Cache de memoria diferentes aplicaciones responden mejor a ciertas estrategias de cache que otras por lo que aunque algunos cache de memoria son comunes a todos los mecanismos como los usados para conexiones de usuario o al cache de sentencias de alta velocidad otros son particulares a cada uno de ellos Concurrecia algunas aplicaciones necesitan granularidad de bloqueo mas fina i e bloqueo a nivel de fila que otras La eleccion de la estrategia de bloqueo adecuada puede reducir tiempos de espera y aumentar la prestacion general Este factor incluye las capacidades concurrencia multi version MVCC o toma de instantaneas Integridad referencial caracteristica que responde a la necesidad de que el servidor asegure la integridad referencial de la base de datos mediante claves externas Particionado algunos mecanismos permiten que diferentes secciones de una misma tabla pueden ser almacenadas en diferentes porciones de disco Las reglas por las que se realiza este particionado se denominan funciones que en MySQL pueden ser el modulo lista de rangos o valores una funcion de hash interna o una funcion lineal Prestaciones las diferencias pueden estar causadas por los hilos multiples para operaciones en paralelo la concurrencia de hilos la toma de puntos de control y el manejo de inserciones masivas Soporte de indices diferentes aplicaciones necesitan diferentes estrategias en cuanto a indices Cada mecanismo de almacenamiento tiene sus propios metodos de indexacion aunque los B tree son comunes a casi todos ellos aunque algunos carecen de indices Soporte de transacciones no todas las aplicaciones necesitan transacciones pero aquellas que las necesiten tendran definidos de manera precisa los requisitos ACID que deben satisfacer los mecanismos adecuados a ellas Caracteristicas varias aqui se puede incluir soporte para operaciones geo espaciales y restricciones de seguridad para ciertas operaciones de manipulacion de datos Tipos de mecanismos EditarLa comunidad MySQL ha desarrollado una gran variedad de Motores de almacenamiento Algunos tienen proposito general mientras que otros fueron desarrollados para cubrir necesidades especiales y han sido puestos a disposicion publica posteriormente Cada mecanismo puede presentar limitaciones en cuanto a indices tipos de los atributos particionado funciones SQL soportadas por lo que es preciso consultar la documentacion detallada antes de utilizarlos En esta recopilacion se han utilizado criterios arbitrarios de agrupacion y clasificacion de los mecanismos por lo que queda abierta la cuestion a sugerencias para refinar la taxonomia Basicos teoricos Editar Aqui se incluyen los mecanismos consustanciales al desarrollo de MySQL o que tienen una aplicacion academica Archive Editar El mecanismo Archive esta concebido para almacenar gran volumen de datos Soporta INSERT y SELECT pero no DELETE REPLACE o UPDATE Soporta el operador ORDER BY atributos tipo BLOB y casi todos los demas excepto los espaciales Implementa bloqueo a nivel de fila tupla Blackhole Editar El mecanismo de almacenamiento Blackhole actua como un agujero negro que acepta todo pero no lo almacena en ningun sitio Todo intento de recuperacion de informacion resultara infructuoso Al crear una tabla con el mecanismo Blackhole el servidor si crea la definicion del formato en el directorio de datos un fichero con extension frm pero no aparece ningun fichero mas Los datos de la tabla los envia todos a dev null Soporta la definicion de todo tipo de indices CSV Editar Este mecanismo de almacenamiento almacena los datos en ficheros de texto separados por comas Esta disponible en todas las versiones del servidor MySQL Cuando se crea una tabla con el mecanismo CSV el servidor crea un fichero con el formato de la tabla en el directorio de datos con extension frm y crea un fichero para contener los datos con extension CSV en el que se guardan los datos de cada tupla en una linea ASCII y separados por comas Example Editar Mecanismo de almacenamiento vacio no hace nada Muestra un ejemplo con la arquitectura de programacion adecuada para el desarrollo de nuevos mecanismos de almacenamiento Tiene interes para desarrolladores Memory Editar Como indica la palabra el mecanismo de almacenamiento Memory archiva las tablas en memoria volatil Usa indices hash por defecto lo que las hace muy rapidas de recorrer y muy utiles para crear tablas temporales Sin embargo cuando el servidor se apaga estas se borran La definicion de las tablas se guarda en ficheros con extension frm de modo que al rearrancar el servidor las tablas estaran definidas pero vacias de datos Sequence Editar Este mecanismo de almacenamiento permite crear secuencias de numeros ascendentes o descendentes empezando por uno determinado y con un incremento arbitrario Sirve para crear tablas virtuales efimeras cuando se necesiten Nunca se escriben en disco ni se crean ficheros frm Estas tablas tiene acceso solo lectura son transaccionales y soportan XA El mecanismo Sequence ha sido introducido en MariaDB 10 0 3 Tradicionales Editar Aqui incluimos los mas o menos convencionales y mas difundidos Aria Editar El mecanismo Aria nacio como una alternativa a MyISAM pero resistente a caidas del sistema Viene incorporado en la distribucion MariaDB 1 No tiene todavia capacidad transaccional pero esta planeado anadirla en el futuro Entre sus objetivos de diseno figuran Crear un nuevo mecanismo de almacenamiento transaccional ACID y MVCC que forme la base tanto de MariaDB como de MySQL Reemplazar directamente a MyISAM gracias a que Aria puede funcionar en modo no transaccional y soporta los mismos formatos que MyISAM Formar parte de manera estandar de MySQL 6 0 Este mecanismo originalmente se llamo Maria pero mas tarde se le cambio el nombre por Aria para evitar confusiones con la base de datos MariaDB la base de datos sucesora de la original MySQL y realizada por el mismo creador Monty Widenius Ultima version 1 5 BDB Editar Articulo principal Berkeley DB La libreria de funciones de bases de datos transaccionales Berkeley DB 2 fue desarrollada originalmente por Sleepycat y adquirida posteriormente por Oracle en 2006 Por su naturaleza DBD ha de ser empotrada en aplicaciones ya que no se suministra interfaz de usuario Por ello puede utilizarse como mecanismo de almacenamiento e invocarse desde un gestor de base de datos como MySQL MariaDB Se incluye soporte para ella en distribuciones fuentes de MySQL y en distribuciones binarias MySQL Max Las tablas BDB pueden sobrevivir a fallos del sistema Tiene caracteristicas transaccionales COMMIT y ROLLBACK La distribucion fuente MySQL MariaDB incluye un codigo BDB preparado para funcionar con MySQL ya que no se puede usar una version de BDB cualquiera Soportada solo hasta MySQL 5 0 Ultima version 6 0 InnoDB Editar Articulo principal InnoDB InnoDB es un mecanismo de almacenamiento transaccional con caracteristicas ACID para MySQL Realiza bloqueo a nivel de filas y lecturas no bloqueantes MVCC tipo Oracle lo que aumentan la concurrencia y las prestaciones InnoDB pertenece a Oracle Corporation tras la adquisicion de Innobase Oy en octubre de 2005 Tiene licenciamiento dual se distribuye bajo licencia GPL pero tambien se licencia a empresas que la quieran incluir en su software Sigue el modelo ACID con COMMIT ROLLBACK y recuperacion de caidas Bloquea a nivel de fila tupla y proporciona concurrencia multiusuario para lectura Organiza los datos en disco para optimizar el uso de claves primarias Mantiene la integridad de datos mediante restricciones FOREIGN KEY que se aplican en INSERT UPDATE y DELETE InnoDB almacena los datos agrupados para reducir el flujo de entrada salida de consultas habituales basadas en claves primarias Se pueden combinar tablas InnoDB con tablas de otros mecanismos de almacenamiento incluso en la misma consulta InnoDB fue el precursor de Falcon por SUN abandonado y de XtraDB por Percona MyISAM Editar Articulo principal MyISAM Implementacion de MySQL del original ISAM que efectua el almacenamiento de datos de manera sencilla y robusta y proporciona una alta velocidad de acceso y un tamano pequeno de ficheros El mecanismo MyISAM almacena cada tabla en tres ficheros frm con el formato de la tabla MYD con los datos MYI con los indicesHa sido el mecanismo de almacenamiento por defecto hasta la version 5 1 de MySQL y sigue siendo utilizado por la version MySQL 5 6 para muchas tablas internas de metadatos PBXT Editar PrimeBase XT PBXT es un mecanismo de almacenamiento transaccional para MySQL Usa una arquitectura basada en logs y escritura unica que proporciona prestaciones optimas en un amplio rango de situaciones El mecanismo es enchufable que significa que puede ser instalado dinamicamente en tiempo de ejecucion en MySQL version 5 1 o posterior Ultima version 1 0 11 TokuDB Editar TokuDB 3 es un mecanismo de almacenamiento altamente escalable y sin mantenimiento que permite acelerar la indizacion de las sentencias SQL y la modificacion en caliente de los esquemas Proporciona altas prestaciones en entornos con carga intensiva de escritura Se instala como plugin y no requiere efectuar cambios en la aplicacion Tiene las caracteristicas ACID implementadas mediante MVCC con el que consigue transacciones con el nivel de aislamiento Serializable Puede soportar la implementacion de cualquier tabla con las mismas limitaciones en cuanto a tipos soportados que MyISAM o InnoDB Ultima version 5 6 26 74 0 XtraDB Editar Version mejorada del mecanismo de almacenamiento InnoDB y mecanismo de almacenamiento por defecto en el clon de MySQL desarrollado por Percona Tiene mejores prestaciones que InnoDB y mejor escalabilidad en hardware moderno util en entornos con carga alta Es compatible con InnoDB de modo que lo puede reemplazar directamente Desarrollado por Percona XtraDB incluye las caracteristicas ACID de InnoDB basadas en una arquitectura MVCC avanzada Se caracteriza por su adaptabilidad metricas y escalabilidad En particular esta disenado para escalar mejor que InnoDB en CPU con nucleos multiples hacer un mas eficiente uso de memoria y tener mas usabilidad Este mecanismo no esta disponible para descarga independiente solo se halla incorporado en MariaDB y Percona Distribuidos Editar Aquellos que estan distribuidos sobre una serie de nodos Columnstore Editar Almacenamiento de columnas basado en InfiniDB 4 6 7 Disenado para su uso en big data que puede escalar linealmente hasta petabytes y proporciona altas prestaciones adecuada para proceso analitico Potencia las ventajas del almacenamiento en columnas efectua compresion y permite particionado horizontal y vertical proporcionando buenas prestaciones a la hora de analizar grandes conjuntos de datos Esta disponible en MariaDB 10 1 y 10 2 Ultima version 1 2 Spider Editar El mecanismo de almacenamiento Spider 4 ofrece las siguientes caracteristicas permite usar tablas de otro servidor MySQL como una tabla local potencia las caracteristicas de otros mecanismos de almacenamiento por cooperacion soporta transacciones XA puede particionar tablas de otros servidores MySQLEsta incorporado en la distribucion 10 0 4 de MariaDB Ultima version 3 2 37 gamma Puente con otras bases de datos Editar Se repasan aquellos que en cierto modo permiten usar una tercera base de datos desde el interfaz MySQL Connect Editar El objetivo principal de este mecanismo es el de conectar a MariaDB a una gran cantidad de datos no relacionales generalmente en ficheros planos para procesos BI sin necesidad de complejas soluciones ETL Este mecanismo cubre todas las funcionalidades de CSV FEDERATED MERGE sin ninguna de sus limitaciones Tambien abarca mas fuentes de datos XML dbase ODBC La implementacion usa caracteristicas avanzadas para indizacion compresion y filtrado de condiciones Esta por ello enfocado a BI mas que a OLTP Puede acceder a tablas localizadas en cualquier servidor local o remoto y el tipo de datos de las columnas puede ser convertido sobre la marcha Ultima version 1 04 0005 beta IBMDB2I Editar IBM proporciona un mecanismo de almacenamiento para IBM serie i antiguo AS 400 Con ese mecanismo las aplicaciones escritas para MySQL pueden correr en la serie i IBM almacenando datos en DB2 Esto permite implementar aplicaciones MySQL transaccionales y en linea almacenando los datos en un entorno DB2 unico y facil de gestionar 5 InfiniDB Editar Desarrollado por Calpont 6 el mecanismo de almacenamiento InfiniDB no se halla disponible por separado sino que utiliza MySQL como frontal formando un RDBMS completo Consigue asi una base de datos analitica orientada a columnas especializada de data warehouse y aplicaciones de lectura intensiva InfiniDB usa el frontal MySQL para el proceso sintactico de SQL parsing seguridad y otras tareas administrativas Todo el entorno grafico gestion de comandos herramientas de desarrollo complementos BI IDEs conectores y drivers que funcionen con MySQL tambien lo haran con InfiniDB Ultima version 2 2 11 Infobright Editar Infobright ha desarrollado una base de datos analitica de altas prestaciones orientada al manejo de grandes volumenes de datos de negocio La version 4 0 con tecnologia DomainExpert permite analizar en tiempo real Big Data con optimizadores especificamente disenados para datos generados automaticamente Infobright implementa una base de datos analitica orientada a columnas rapida y eficiente Proporcionando una compresion media de 10 1 permite el tratamiento multidimensional de los datos Es facil de instalar y gestionar y existe tanto una Community Edition ICE como una Enterprise Edition IEE Su integracion como mecanismo de almacenamiento en MySQL permite el acceso de los usuarios de este SGBDR y a herramientas avanzadas de BI Ultima version 4 0 7 Mdbtools Editar Mecanismo de almacenamiento que permite acceso de solo lectura a bases de datos MicroSoft Access ficheros con extension mdb Ver detalles del proyecto en Sourceforge Ultima version 0 6 MyRocks Editar La base de datos RocksDB esta basada en LevelDB y mantenida por Facebook Database Engineering Team Este mecanismo de almacenamiento esta optimizado para funcionamiento rapido con baja latencia como discos flash y discos de alta velocidad Explota el potencial de la alta velocidad de lectura y escritura mediante el almacenamiento de datos de log a alta velocidad en arboles LSM Consigue el doble de compresion que InnoDB y el triple que almacenamiento sin compresion SphinxSE Editar Existe una base de datos textual llamada Sphinx que funciona como un DBMS independiente Esta base de datos fue disenada especialmente para integrarse de modo facil con bases de datos SQL que contuvieran los textos y poderse emplear con lenguajes de scripting Los dos componentes principales de sphinx son indexer utilidad para crear indices de texto completo searchd proceso que permite la conexion de programas externosSphinxSE es un mecanismo que conecta sphinx con MySQL u otras bases de datos SQL y que puede ser incorporado en los servidores MySQL a partir de la version 5 1 mediante su arquitectura de modulos enchufables SphinxSE no almacena datos por si mismo funciona como un cliente integrado que permite al servidor MySQL comunicarse con el componente de sphinx searchd para realizar busquedas y obtener los resultados La busqueda e indexacion la realiza el cliente Sphinx de SphinxSE para MySQL Ultima version 2 2 6 Interfaz con bases de datos no SQL Editar Por su especial relevancia se desglosan los mecanismos de almacenamiento que constituyen el nucleo de bases de datos no SQL y se pueden utilizar desde MySQL Cassandra SE Editar El principal objetivo del mecanismo de almacenamiento Cassandra SE 7 es la integracion de datos entre el mundo SQL y el NoSQL al que pertenece la base de datos Cassandra Permite capturar datos de Cassandra desde el frontal web o sentencia SQL insertar registros en Cassandra desde una aplicacionLa base de datos Cassandra utiliza el lenguaje CQL pero en MariaDB 10 0 sera posible interrogarla utilizando SQL Esto permite que las columnas de Cassandra aparezcan como tablas en las que se pueden realizar INSERT UPDATE o SELECT Es posible tambien escribir JOIN incluyendo tablas que usen otros mecanismos de almacenamiento El mecanismo viene enlazado estaticamente en la version preliminar 5 5 25 de MariaDB y forma parte de la version MariaDB 10 0 1 Ultima version 1 8 experimental MemcacheDB Editar Se trata de un mecanismo de almacenamiento persistente para pares clave valor distribuido que se ajusta al protocolo memcached por lo que es accesible por cualquier cliente que cumpla ese protocolo MemcacheDB usa Berkeley DB como base de almacenamiento por lo que soporta las caracteristicas de transaccion y replicacion Ultima version 1 2 1 beta En red Editar Aqui se mencionan los mecanismos que permiten distribuir los datos para lectura o escritura entre mas de un nodo fisico AWSS3 Editar Simple Storage Service S3 es un mecanismo de almacenamiento sobre Internet proporcionado como servicio web por Amazon Este mecanismo permite crear un almacenamiento para MySQL sobre S3 a traves de la web Amazon S3 proporciona una sencilla interfaz de servicios web que puede utilizarse para almacenar y recuperar la cantidad de datos que desee cuando desee y desde cualquier parte de la web Concede acceso a todos los usuarios a la misma infraestructura a un precio economico altamente escalable fiable segura y rapida que utiliza Amazon para tener en funcionamiento su propia red internacional de sitios web Este servicio tiene como fin maximizar las ventajas del escalado y trasladar estas ventajas a los usuarios finales Ultima version 0 06 descontinuado continua con ClouSE ClouSE Editar ClouSE 8 es un mecanismo de altas prestaciones y alta fiabilidad que usa el servicio web de Amazon S3 para almacenar los datos Presenta estas caracteristicas transaccional con caracteristicas ACID permitiendo commit rollback y recuperacion frente a caidas utiliza almacenamiento en cloud proporciona cifrado de datos con AES 256 permite el acceso directo a contenido blobUltima version 1 0b 1 8 Federated Editar El mecanismo Federated permite guardar los datos de una tabla en otro servidor MySQL remoto a traves de la red Al realizar una consulta los datos se extraen de ese servidor No se guardan datos en el servidor local solo el fichero de formato frm El mecanismo de almacenamiento usado por el servidor remoto puede ser cualquiera de los que soporte este descontinuado continua con FederatedX FederatedX Editar Articulo principal FederatedX Es un proyecto que continua el desarrollo del mecanismo de almacenamiento Federated Se basa en el codigo de este ultimo disponible en la version MySQL 5 1 Cuenta con muchas peticiones de nuevas caracteristicas y de correccion de errores de Federated que llevaban algun tiempo esperando El mecanismo FederatedX se plantea incorporar estas caracteristicas Soportar ODBC ademas de libmysql Aceptar conexiones multiples Soportar transacciones Permitir restricciones como LIMIT columnas no indexadasUltima version 0 1 Merge Editar El mecanismo de almacenamiento Merge anteriormente conocido como MRG MyISAM agrupa un conjunto de tablas basadas en el mecanismo MyISAM identicas y las presenta como una sola Las tablas que se agrupan han de ser identicas tanto en campos como en indices Si no se especifica INSERT METHOD en su creacion no se permiten las inserciones Se puede especificar que estas se realicen en la primera o ultima tabla de la union NDB Editar Articulo principal MySQL Cluster NDBCLUSTER es una base de datos desarrollada originalmente por Ericcson para uso en sus redes de telefonia basadas en la central AXE 9 En su origen estaba pensada como una base de datos distribuida geograficamente a nivel regional Aunque puede funcionar de manera autonoma NDB fue adaptada para su uso por MySQL Cluster como otro mecanismo de almacenamiento y asi distribuir tablas entre varios ordenadores Esta disponible desde la version binaria de MySQL 5 0 y soportado en muchas plataformas Unix En modo experimental se distribuye para Windows a partir de Cluster NDB 7 0 Ultima version 7 3 ScaleDB Editar ScaleDB es un mecanismo de almacenamiento enchufable para MySQL que lo escala para poder disponer de la potencia del cloud computing ya sea esta publica privada o interna a la empresa Es un mecanismo pionero del NewSQL que ofrece las ventajas de SQL y NoSQL al mismo tiempo que permite el funcionamiento in the cloud Proporciona Indexacion a alta velocidad Simplicidad Plug and Cluster Recuperacion automatica de datos Caracteristicas ACID Arquitectura con todo compartido Altas prestaciones en el proceso de transacciones Tolerancia a fallos Bloqueo a nivel de filas Control de concurrencia multi nodo Elimina el requisito de particionar los datosUltima version beta Exoticos Editar Se recogen finalmente aquellos mecanismos que tienen dificil clasificacion en las anteriores categorias o un uso muy especifico DDE GAN Editar El mecanismo DDE GAN 10 optimiza el acceso a los datos sobre una red global GAN La localizacion de los datos se basa en metodos estadisticos de prediccion para optimizar el acceso por los nodos Cada nodo solo contiene un subconjunto de los datos Optimizando la localizacion de los datos en el cluster se minimizan los costes de comunicacion Permite construir una based de datos distribuida a nivel mundial Ultima version 0 2 alpha Mroonga Editar Un mecanismo de almacenamiento para caracteres CJK chino japones amp coreano basado en groonga 11 un motor de busqueda textual A partir de que se introdujeran los mecanismos de almacenamiento enchufables en MySQL 5 1 se puede usar Mroonga facilmente desde MariaDB 5 3 MyBS Editar El mecanismo MyBS transforma a MySQL en un servidor escalable de contenidos digitales capaz de almacenar peliculas videos sonido y cualquier otro objeto binario BLOB directamente en la base de datos OQGraph Editar El mecanismo de almacenamiento OQGraph Open Query GRAPH permite manejar estructuras jerarquicas en arbol y tambien grafos genericos OQGraph esta especialmente indicado para manejar relaciones n m Ultima version Mk II Q4M Editar Implementa una cola de mensajes que funciona como un mecanismo de almacenamiento enchufable a Mysql 5 1 o posteriores disenado pensando en la robustez rapidez y flexibilidad Esta en fase de produccion y es empleado en multitud de servicios web Ultima version 0 9 5 RitmarkFS Editar Permite trabajar con sistemas de ficheros directamente desde MySQL Puede tambien acceder discos sin formato Tabla comparativa EditarSe comparan los mecanismos de almacenamiento mas utilizados en esta tabla adaptada de MySQL 12 Caracteristica MyISAM Memory InnoDB Archive NDBLimite de almacenamiento 256 TB Sistema nota 1 64 TB Dispositivos nota 2 384 EBSoporta transacciones No No Si No SiGranularidad de bloqueo Tabla Tabla Fila Fila FilaMVCC No No Si Si SiClaves externas No No Si No Si nota 3 Soporta tipos espaciales Si No Si Si SiSoporta indices espaciales Si No No No NoIndices binarios Si Si Si No SiIndices hash No Si No No SiIndices texto completo Si No No No NoAgrupacion de indices No No Si No NoCache de datos No N A Si No SiCache de indices Si N A Si No SiCompresion de datos Si nota 4 No Si nota 5 Si NoSoporta cluster No No No No SiRecuperacion frente a caidas No No Si No SiCache de consultas Si Si Si Si SiEstadisticas del diccionario de datos Si Si Si Si SiEn todos los casos el cifrado de datos la replicacion y las operaciones de Backup recuperacion puntual se realizan por el servidor y son independientes del mecanismo de almacenamiento Notas a la tabla Editar Limitado por la memoria direccionable por el HW sistema operativo Limitado por la capacidad de los dispositivos de almacenamiento externos y el sistema operativo A partir de la version 7 3 Se comprimen mediante la aplicacion myisampack quedando la tabla disponible en modo solo lectura Requiere el formato Barracuda y la opcion fichero por cada tablaReferencias Editar MariaDB 5 3 4 Release Notes en ingles Monty program Archivado desde el original el 20 de febrero de 2012 Consultado el 23 de febrero de 2012 Berkley DB en ingles Oracle Consultado el 19 de octubre de 2012 TokuDB Release Notes en ingles Tokutek Consultado el 28 de enero de 2013 Spider for MySQL en ingles Kentoku SHIBA Consultado el 12 de octubre de 2012 Using IBM DB2 for i as a Storage Engine of MySQL en ingles IBM red books Consultado el 19 de enero de 2012 Data Warehousing with InfiniDB en ingles Calpont Archivado desde el original el 23 de septiembre de 2012 Consultado el 17 de octubre de 2012 Cassandra storage engine en ingles Ask Monty Archivado desde el original el 16 de septiembre de 2012 Consultado el 12 de octubre de 2012 Oblaksoft en ingles Oblaksoft Archivado desde el original el 15 de octubre de 2012 Consultado el 11 de octubre de 2012 The Ericsson Network Database NDB Cluster en ingles Ericsson Consultado el 6 de noviembre de 2012 DDE GAN en ingles DDE engine Archivado desde el original el 12 de mayo de 2012 Consultado el 12 de octubre de 2012 Groonga an open source fulltext search engine and column store en ingles Groonga Consultado el 27 de enero de 2012 Storage Engines MySQL 5 6 reference manual en ingles Oracle Consultado el 29 de enero de 2013 Datos Q5155760Obtenido de https es wikipedia org w index php title Mecanismos de almacenamiento MySQL amp oldid 134887994, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos