El documento describe los conceptos fundamentales de almacenamiento en Oracle y MySQL, incluyendo tablespaces, datafiles, segmentos, extensiones y bloques de datos en Oracle, y los motores de almacenamiento MyISAM, Merge, Memory y BerkeleyDB en MySQL. Explica que los objetos en Oracle se almacenan lógicamente en tablespaces y físicamente en datafiles, mientras que en MySQL cada motor de almacenamiento almacena las tablas de manera diferente dependiendo de sus características.
El documento describe los conceptos fundamentales de almacenamiento en Oracle y MySQL, incluyendo tablespaces, datafiles, segmentos, extensiones y bloques de datos en Oracle, y los motores de almacenamiento MyISAM, Merge, Memory y BerkeleyDB en MySQL. Explica que los objetos en Oracle se almacenan lógicamente en tablespaces y físicamente en datafiles, mientras que en MySQL cada motor de almacenamiento almacena las tablas de manera diferente dependiendo de sus características.
El documento describe los conceptos fundamentales de almacenamiento en Oracle y MySQL, incluyendo tablespaces, datafiles, segmentos, extensiones y bloques de datos en Oracle, y los motores de almacenamiento MyISAM, Merge, Memory y BerkeleyDB en MySQL. Explica que los objetos en Oracle se almacenan lógicamente en tablespaces y físicamente en datafiles, mientras que en MySQL cada motor de almacenamiento almacena las tablas de manera diferente dependiendo de sus características.
El documento describe los conceptos fundamentales de almacenamiento en Oracle y MySQL, incluyendo tablespaces, datafiles, segmentos, extensiones y bloques de datos en Oracle, y los motores de almacenamiento MyISAM, Merge, Memory y BerkeleyDB en MySQL. Explica que los objetos en Oracle se almacenan lógicamente en tablespaces y físicamente en datafiles, mientras que en MySQL cada motor de almacenamiento almacena las tablas de manera diferente dependiendo de sus características.
Descargue como DOCX, PDF, TXT o lea en línea desde Scribd
Descargar como docx, pdf o txt
Está en la página 1de 8
Motor de almacenamiento Oracle
En Oracle se tienen varios Conceptos de almacenamiento, los cuales son:
Concepto de Tablespace (espacio de tablas): La base de datos se divide en unidades lgicas llamadas Tablespaces. Tablespace no es un fichero fsico en el disco, simplemente es el nombre que tiene un conjunto de propiedades de almacenamiento que se aplican a los objetos (tablas, secuencias, entre otros) que se van a crear en la base de datos bajo el tablespace indicado. Algo que no hay que olvidar es que un objeto en base de datos debe estar almacenado obligatoriamente dentro de un tablespace. Cuando un objeto se crea dentro de un cierto tablespace, este objeto adquiere todas las propiedades antes descritas del tablespace utilizado.
Concepto de Datafile (fichero de datos): Un datafile es la representacin fsica de un tablespace. Son los ficheros de datos donde se almacena la informacin fsicamente. Un datafile puede tener cualquier nombre y extensin, y puede estar localizado en cualquier directorio del disco duro, aunque su normalmente ser $ORACLE_HOME/Database.
Cuando se crea un datafile, este ocupa tanto espacio en disco como se haya indicado en su creacin, aunque internamente est vaco. Oracle hace esto para reservar espacio continuo en disco y evitar as la fragmentacin. Conforme se vayan creando objetos en ese tablespace, se ir ocupando el espacio que cre inicialmente.
Concepto de Segment (segmento): Un segment es aquel espacio reservado por la base de datos, dentro de un datafile, para ser utilizado por un solo objeto. As una tabla o cualquier otro objeto est dentro de su segmento, y nunca podr salir de l, ya que si la tabla crece, el segmento tambin crece con ella.
Concepto de Extent (extensin): Para cualquier objeto de base de datos que tenga cierta ocupacin en disco, es decir, cualquier objeto que tenga un segment relacionado, existe el concepto de extent. Extent es un espacio de disco que se reserva de una sola vez, un segmento que se reserva en un momento determinado de tiempo. El concepto de extent es un concepto fsico, unos estn separados de otros dentro del disco. Ya dijimos que todo objeto tiene su segmento asociado, pero lo que no dijimos es que este segmento, a su vez, se compone de distintas extensiones. Un segmento, puede ser reservado de una sola vez (10 Mb de golpe), o de varias veces (5 Mb hoy y 5 Mb maana). Cada una de las veces que se reserva espacio se denomina extensin.
Concepto de Data block (bloque de datos): Un data block es el ltimo eslabn dentro de la cadena de almacenamiento. El concepto de Data block es un concepto fsico, ya que representa la mnima unidad de almacenamiento que es capaz de manejar Oracle. Igual que la mnima unidad de almacenamiento de un disco duro es la unidad de asignacin, la mnima unidad de almacenamiento de Oracle es el data block. En un disco duro no es posible que un fichero pequeo ocupe menos de lo que indique la unidad de asignacin, as si la unidad de asignacin es de 4 Kb, un fichero que ocupe 1 Kb, en realidad ocupa 4 Kb. Siguiendo con la cadena, cada segmento (o cada extensin) se almacena en uno o varios bloques de datos, dependiendo del tamao definido para el extensin, y del tamao definido para el data block.
Motores de almacenamiento MySQL
MyIsam: Es el motor de almacenamiento por defecto. Se basa en el cdigo 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 extensin para indicar el tipo de fichero. Un fichero .frm almacena la definicin de tabla. El fichero de datos tiene una extensin .MYD (MYData) . El fichero ndice tiene una extensin .MYI (MYIndex).
Las siguientes son algunas caractersticas del motor de almacenamiento MyISAM :
Todos los datos se almacenan con el byte menor primero. Esto hace que sean independientes de la mquina y el sistema operativo. El nico requerimiento para portabilidad binaria es que la mquina use enteros con signo en complemento a dos (como todas las mquinas en los ltimos 20 aos) y formato en coma flotante IEEE (tambin dominante en todas las mquinas). Ficheros grandes (hasta longitud de 63 bits) se soportan en sistemas de ficheros y sistemas operativos que soportan ficheros grandes. Registros de tamao dinmico se fragmentan mucho menos cuando se mezclan borrados con actualizaciones e inserciones. Esto se hace combinando automticamente bloques borrados adyacentes y extendiendo bloques si el siguiente bloque se borra. El mximo nmero de ndices por tabla MyISAM en MySQL 5.0 es 64. Esto puede cambiarse recompilando. El mximo nmero de columnas por ndice es 16. Las columnas BLOB y TEXT pueden indexarse. Valores NULL se permiten en columnas indexadas. Esto ocupa 0-1 bytes por clave. Todos los valores de clave numrico se almacenan con el byte mayor primero para mejor compresin de ndice. Cuando se insertan registros en orden (como al usar columnas AUTO_INCREMENT ), el rbol ndice se divide de forma que el nodo mayor slo contenga una clave. Esto mejora la utilizacin de espacio en el rbol ndice. El tratamiento interno de una columna AUTO_INCREMENT por tabla. MyISAM actualiza automticamente esta columna para operaciones INSERT y UPDATE . Soporte de un tipo VARCHAR autntico; una columna VARCHAR comienza con la longitud almacenada en dos bytes. Tablas con VARCHAR pueden tener longitud de registro fija o dinmica. VARCHAR y CHAR pueden ser de hasta 64KB. Merge: El motor de almacenamiento MERGE , tambin conocido como MRG_MyISAM , es una coleccin de tablas MyISAM idnticas que pueden usarse como una. "Idntica significa que todas las tablas tienen informacin de columna e ndice idntica. No puede mezclar tablas en que las columnas se listen en orden distinto, no tengan exactamente las mismas columnas, o tengan los ndices en orden distinto. Cuando crea una tabla MERGE , MySQL crea dos ficheros en disco. Los ficheros tienen nombres que comienzan con el nombre de la tabla y tienen una extensin para indicar el tipo de fichero, Un fichero .frm almacena la definicin de tabla , y un fichero .MRG contiene los nombres de las tablas que deben usarse como una. Las tablas no tienen que estar en la misma base de datos que la tabla MERGE misma. Memory: El motor de almacenamiento MEMORY crea tablas con contenidos que se almacenan en memoria. stas se conocan previamente como HEAP. Cada tabla MEMORY est asociada con un fichero de disco. El nombre de fichero comienza con el nombre de la tabla y tiene una extensin de .frm para indicar que almacena la definicin de la tabla. Como indica su nombre, las tablas MEMORY se almacenan en memoria y usan ndices hash por defecto. Esto las hace muy rpidas, y muy tiles para crear tablas temporales. Sin embargo, cuando se apaga el servidor, todos los datos almacenados en las tablas MEMORY se pierde. Las tablas MEMORY tienen las siguientes caractersticas: El espacio para tablas MEMORY se reserva en pequeos bloques. Las tablas usan el 100% del hashing dinmico para inserciones. No se necesita rea de desbordamiento o espacio extra para claves. No se necesita espacio extra para listas libres. Los registros borrados se ponen en una lista encadenada y se resan cuando inserta nuevos datos en la tabla. Las tablas MEMORY no tienen ninguno de los problemas asociados con borrados ms inserciones en tablas hasheadas. Las tablas MEMORY pueden tener hasta 32 ndices por tabla, 16 columnas por ndice y una clave de longitud mxima de 500 bytes. El servidor necesita suficiente memoria para mantener todas las tablas MEMORY en uso a la vez. BerkeleyDB: Sleepycat Software ha proporcionado a MySQL el motor de almacenamiento transaccional Berkeley DB. A este motor de almacenamiento se le llama tradicionalmente BDB. Se incluye soporte para BDB en distribuciones fuentes de MySQL y en distribuciones binarias MySQL-Max . Las tablas BDB pueden tener una gran probabilidad de sobrevivir a fallos del sistema y ser capaces de realizar COMMIT y ROLLBACK en transacciones. Cada tabla BDB se almacena en disco en dos ficheros. Los ficheros tienen nombres que comienzan con el nombre de la tabla y tienen una extensin para indicar el tipo de fichero. Un fichero .frm almacena la definicin de tabla, y un fichero .db contiene los datos de tabla e ndices. El motor de almacenamiento BDB proporciona tablas transaccionales. La forma de usar estas tablas depende del modo autocommit: Si est ejecutando con autocommit activado (por defecto), los cambios en las tablas BDB se efectan inmediatamente y no pueden deshacerse. Si est ejecutando con autocommit desactivado, los cambios no son permanentes hasta que ejecuta un comando COMMIT . En lugar de hacer un commit puede ejecutar ROLLBACK para olvidar los cambios. Example: El motor de almacenamiento EXAMPLE es un motor de pruebas que no hace nada. Su propsito es servir como ejemplo en el cdigo fuente MySQL para ilustrar cmo empezar a escribir nuevos motores de almacenamiento. Federated: El motor FEDERATED est disponible desde MySQL 5.0.3. Es un motor que accede a datos en tablas de bases de datos remotas en lugar de tablas locales. Cuando crea una tabla FEDERATED , el servidor crea un fichero de definicin de tabla en el directorio de base de datos. El fichero comienza con el nombre de tabla y tiene extensin .frm . No se crean ms ficheros, ya que los datos reales estn en la base de datos remota. Esto difiere de cmo funcionan los motores con tablas locales. Con el motor MySQL FEDERATED no hay ficheros de datos locales para una tabla (por ejemplo, no hay fichero .MYD ). En su lugar, una base de datos remota almacena los datos que normalmente estaran en la tabla. Esto necesita el uso de la API del cliente MySQL para leer, borrar, actualizar e insertar datos. La recuperacin de datos se inicia va un comando SELECT * FROM tbl_name . Para leer el resultado, los registros se tratan uno a uno usando la funcin de la API C mysql_fetch_row() y luego se convierten desde las columnas del conjunto de resultados SELECT al formato que el handler FEDERATED espera.
Archive: El motor de almacenamiento ARCHIVE se usa para guardar grandes cantidades de datos sin ndices con una huella relativamente pequea. Cuando crea una tabla ARCHIVE , el servidor crea un fichero de definicin de tabla en el directorio de base de datos. El fichero comienza con el nombre de tabla y tiene una extensin de .ARZ y .ARM. Un fichero .ARN puede aparecer durante operaciones de optimizacin. El motor ARCHIVE soporta slo INSERT y SELECT. Esto significa que no puede ejecutar DELETE, REPLACE, o update . Un SELECT realiza un escaneo de tabla completo. Los registros se comprimen al insertarse. CSV: El motor de almacenamiento CSV almacena datos en ficheros de texto usando valores separados por comas. Cuando crea una tabla CSV , el servidor crea un fichero de definicin de tabla en el directorio de base de datos. El fichero comienza con el nombre de tabla y tienen una extensin .frm. El motor de almacenamiento crea un fichero de datos. Su nombre comienza con el nombre de tabla y tiene extensin .CSV. El fichero de datos es un fichero de texto. Cuando almacena datos en la tabla, el motor la guarda en el fichero de datos en formato CSV. InnoDB: InnoDB dota a MySQL de un motor de almacenamiento transaccional (conforme a ACID) con capacidades de commit (confirmacin), rollback (cancelacin) y recuperacin de fallas. InnoDB realiza bloqueos a nivel de fila y tambin proporciona funciones de lectura consistente sin bloqueo al estilo Oracle en sentencias SELECT. Estas caractersticas incrementan el rendimiento y la capacidad de gestionar mltiples usuarios simultneos. No se necesita un bloqueo escalado en InnoDB porque los bloqueos a nivel de fila ocupan muy poco espacio. InnoDB tambin soporta restricciones FOREIGN KEY. En consultas SQL, an dentro de la misma consulta, pueden incluirse libremente tablas del tipo InnoDB con tablas de otros tipos. InnoDB se dise para obtener el mximo rendimiento al procesar grandes volmenes de datos. el motor de almacenamiento. InnoDB mantiene su propio pool de almacenamiento intermedio para tener un cache de datos e ndices en la memoria principal. InnoDB almacena sus tablas e ndices en un espacio de tablas, el cual puede consistir de varios ficheros (o particiones disco). MySQL Clster: MySQL Clster es una versin de alta disponibilidad, alta redundancia de MySQL adaptada para el entorno de computacin distribuida. Usa el motor de almacenamiento NDB Clster para permitir la ejecucin de varios servidores MySQL en un clster. Este motor de almacenamiento est disponible en las distribuciones binarias de MySQL 5.0 y en los RPMs compatibles con las distribuciones Linux ms modernas. Lo sistemas operativos en que MySQL Clster est disponible son Linux, Mac OS X, y Solaris. Motor de almacenamiento PostgreSQL PostgreSQL posee un solo Storage Manager este esta compuesto por varios mdulos que proveen administracin de las transacciones y acceso a los objetos de la base de datos. Los mdulos se programaron bajo 3 lineamientos bien claros: Manejar transacciones sin necesidad de escribir cdigo complejo de recuperacin en caso de cadas. Mantener versiones histricas de la data bajo el concepto de graba una vez, lee muchas veces. Tomar las ventajas que ofrece el hardware especializado como multiprocesadores, memoria no voltil, etc. Los mdulos que componen el Storage Manager son:
Transaction System Relational Storage Time Management Concurrency Control y Timestamp Management Record Access
PostgreSQL siempre esta aadiendo los datos, los datos modificados o borrados realmente no se modifican o se borran, las pginas donde ellos estn almacenados se marca como no visible y se inserta un nuevo registro completo con un clon de toda los datos. Esto hace que la base de datos ocupe mucho espacio y afecta el tiempo de acceso a los datos.
Motores de almacenamiento de MariaDB
PBXT: Es un motor de almacenamiento transaccional de propsito general. PBXT es totalmente "ACID " compatible , lo que significa que se puede utilizar como una alternativa a otros motores transaccionales de MariaDB ( tales como XtraDB o InnoDB ) .
PBXT caractersticas son las siguientes :
Soporte MVCC: MVCC permite la lectura de la base de datos sin bloquear. Totalmente compatible con ACID : Esto significa que todas las transacciones son: atmica , consistente, aislada y durable. Bloqueo a nivel de fila: Al actualizar , PBXT utiliza el bloqueo de filas . Bloqueo a nivel de fila tambin se utiliza durante SELECT FOR UPDATE. Rollback rpida y recuperacin: PBXT utiliza un mtodo especializado para identificar la basura que hace " deshacer " innecesario . Esto hace que tanto rollback de las transacciones y la recuperacin despus de reiniciar muy rpido. Deteccin de Deadlock : PBXT identifica todo tipo de bloqueos inmediatamente. Write-Once : PBXT utiliza un almacenamiento basado en registro que permite escribir los datos transaccionales directamente a la base de datos, sin primero escribir en el registro de transacciones . Integridad Referencial : PBXT admite definiciones de claves forneas , incluyendo actualizaciones y eliminaciones en cascada.
XtraDB: Es una versin mejorada del motor de almacenamiento InnoDB, diseado para una mejor escala en el hardware moderno, e incluye una variedad de otras caractersticas tiles en entornos de alto rendimiento.
XtraDB incluye todo el diseo de InnoDB robusto, fiable cumple las reglas ACID y arquitectura MVCC avanzada, y se basa en la base slida con ms funciones, ms capacidad de ajuste, ms mtricas, y ms escalabilidad. En particular, est diseado para escalar mejor en muchos ncleos, para usar la memoria de manera ms eficiente, y para ser ms conveniente y til. Las nuevas caractersticas son especialmente diseados para aliviar algunas de las limitaciones de InnoDB.
Aria: Est compilado por defecto en MariaDB 5.1 y es necesario estar "en uso" cuando se inicia mysqld.
Adems, las tablas internas en disco estn en el formato de tabla Aria en lugar del formato de tabla MyISAM. Esto debera acelerar algunos GROUP BY y DISTINCT consultas porque Aria tiene mejor almacenamiento en cach que MyISAM.
FederatedX: Es un fork del motor de almacenamiento federada, el ltimo de los dos ya no est siendo mantenido por Oracle. El propsito de FederatedX es mantener el desarrollo de este motor de almacenamiento progresando - tanto para aadir nuevas funciones, as como arreglar viejo bugs.
FederatedX es un motor de almacenamiento que funciona con MariaDB y MySQL. Donde otros motores de almacenamiento se construyen como las interfaces de nivel inferior a los almacenes de datos basados en archivos, FederatedX utiliza libmysql para hablar con la fuente de datos, el origen de datos es un RDBMS remoto. En la actualidad, ya que slo utiliza FederatedX libmysql, slo puede hablar con otro RDBMS MySQL. El plan es, por supuesto, ser capaz de utilizar otros sistemas de RDBMS como fuente de datos.