integrantes: maría josé gutiérrez juan carlos ferreira ronald prado

56
Integrantes: María José Gutiérrez Juan Carlos Ferreira Ronald Prado MariaDB y MySQL

Upload: karsen

Post on 29-Jan-2016

38 views

Category:

Documents


1 download

DESCRIPTION

MariaDB y MySQL. Integrantes: María José Gutiérrez Juan Carlos Ferreira Ronald Prado. Agenda:. MySQL. Características de MySQL. MariaDB. Características de MariaDB. Arquitectura de MySQL. Arquitectura de MariaDB Manejo de Memoria. Tipos de Archivos. Índices en MySQL. Concurrencia. - PowerPoint PPT Presentation

TRANSCRIPT

Diapositiva 1

Integrantes:Mara Jos GutirrezJuan Carlos FerreiraRonald PradoMariaDB y MySQLAgenda:MySQL.Caractersticas de MySQL.MariaDB.Caractersticas de MariaDB.Arquitectura de MySQL.Arquitectura de MariaDBManejo de Memoria.Tipos de Archivos.ndices en MySQL.Concurrencia. Recuperacin.

MySQLMySQL es un sistema de administracin para bases de datos relacionales que provee una solucin robusta a los usuarios con poderosas herramientas multi-usuario, soluciones de base de datos SQL (structured Query Language) multi-threaded. Es rpido, robusto y fcil de utilizar.

Caractersticas de MySQLLas principales caractersticas de este gestor de bases de datos son las siguientes:Aprovecha la potencia de sistemas multiprocesador, gracias a su implementacin multihilo.Soporta gran cantidad de tipos de datos para las columnas.Dispone de API's en gran cantidad de lenguajes (C, C++, Java, PHP, etc).Gran portabilidad entre sistemas.Soporta hasta 32 ndices por tabla.Gestin de usuarios y passwords, manteniendo un muy buen nivel de seguridad en los datos.

MariaDBMariaDB es un servidor de base de datos derivado de MySQL con licencia GPL. Est soportado por Michael Monty Widenius (fundador de MySQL) y la comunidad de desarrolladores de software libre. Tiene una alta compatibilidad con MySQL ya que posee las mismas rdenes, interfaces, APIs y bibliotecas, siendo su objetivo poder cambiar un servidor por otro directamente.

Caractersticas de MariaDBUno de las caractersticas a favor de MariaDB es que no hace falta hacer ninguna modificacin en toda la estructura de la base de datos que tenemos, ni siquiera hay que tocar una lnea de cdigo, porque MariaDB es 100% compatible con MySQL.

Mejoras de Velocidad:Existen algunas mejoras al cdigo DBUG para hacer su ejecucin mas rpida cuando se compila. La tabla de chequeo de redundancia es mas rpida . El uso del motor aria permite realizar consultas complejas rpidamente.Replicacin rpida y segura.

Arquitectura de MySQL

Arquitectura de MySQL

Los conectores son bibliotecas en diferentes lenguajes de programacin que permiten la conexin (remota o local) con servidores MySQL y la ejecucin de consultas. Por ejemplo, el conector Connector/J permite conectarse a MySQL desde cualquier aplicacin programada en lenguaje Java, y utilizando el Java Database Connectivity (JDBC) API. Arquitectura de MySQL

La gestin de conexiones es responsable de mantener las mltiples conexiones de los clientes. Las conexiones consumen recursos de mquina, y crearlas y destruirlas son tambin procesos costosos. Por eso, el gestor de conexiones de MySQL puede configurarse para limitar el nmero de conexiones concurrentes.Arquitectura de MySQL

Cada vez que una consulta llega al gestor de MySQL, se analiza sintcticamente y se produce una representacin intermedia de la misma. A partir de esa representacin, MySQL toma una serie de decisiones, que pueden incluir el determinar el orden de lectura de las tablas, el uso de ciertos ndices, o la re-escritura de la consulta en una forma ms eficiente. Arquitectura de MySQL

Dado que la optimizacin de las consultas depende de las capacidades del gestor de almacenamiento que se est utilizando, el optimizador pregunta al gestor si soporta ciertas caractersticas, y de este modo, puede decidir el tipo de optimizacin ms adecuado.Arquitectura de MySQL

MySQL implementa un cach de consultas, donde guarda consultas y sus resultados enteros. De este modo, el procesador de consultas, antes ni siquiera de plantear la optimizacin, busca la consulta en la cach, para evitarse realizar el trabajo en el caso de que tenga suerte y encuentre la consulta en la cach.Arquitectura de MySQL

El control de concurrencia en un gestor de bases de datos es simplemente el mecanismo que se utiliza para evitar que lecturas o escrituras simultneas a la misma porcin de datos terminen en inconsistencias o efectos no deseados. Arquitectura de MySQL

La recuperacin permite volver hacia atrs (rollback) partes de una transaccin. Arquitectura de MySQL

La gestin de transacciones permite dotar de semntica todo o nada a una consulta o a un conjunto de consultas que se declaran como una sola transaccin.Arquitectura de MySQL

Los motores de almacenamiento son una interfaz abstracta con funciones comunes de gestin de datos en el nivel fsico. Arquitectura de MySQL

EL motor de almacenamiento InnoDB proporcionan tablas transaccionales.Arquitectura de MySQL

Trata tablas no transaccionales. Proporciona almacenamiento y recuperacin de datos rpida.Arquitectura de MySQL

El motor de almacenamiento MEMORY proporciona tablas en memoria. Arquitectura de MySQL

El motor de almacenamiento FEDERATED guarda datos en una base de datos remota.Arquitectura de MariaDBMas motores de almacenamiento: Adicionalmente a los motores estndar de MySQL, los siguientes motores estn incluidos en los paquetes binarios y fuente de MariaDB:Aria: Un motor de almacenamiento a prueba de fallos basado en MyISAM. PBXT: Un motor de almacenamiento transaccional con una gran cantidad de nuevas caractersticas. XtraDB: El reemplazo del motor InnoDB basado en el plug-in de InnoDB FederatedX: El reemplazo del motor Federated.

Manejo de MemoriaEl servidor MySQL utiliza espacio en disco para almacenar lo siguiente: Los programas cliente y servidor, y sus libreras. Los archivos de registro ("logs") y de estado. Las bases de datos. Los archivos de formato de tablas ("*.frm") para todos los motores de almacenamiento, y los archivos de datos y archivos de ndices para algunos motores de almacenamiento. Los archivos de "tablespaces" de InnoDB, si el motor de almacenamiento InnoDB est activado. Tablas temporales internas que han sobrepasado el lmite de tamao en memoria y deben ser convertidas a tablas en disco.

Tipos de ArchivosEl motor de almacenamiento MyISAM almacena en el disco duro cada tabla en tres archivos:.frm archivos de formato de la tabla..MYD (MyData) archivos de datos..MYI (MyIndex) archivos ndices. Cuyos nombres que comienzan con el nombre de la tabla y tienen una extensin para indicar el tipo de archivo.

IndicesEstructuras de datos que permiten al SMBD localizar de una manera mas rpida un registro dentro de un archivo de datos. Los ndices (como en el caso de los libros) sirven para agilizar las consultas de las tablas, evitando que MySQL tenga que revisar todos los datos disponibles para devolver el resultado.En MySQL el nmero mximo de ndices por tabla y la longitud mxima del ndice se define por el motor de almacenamiento.Todos los motores de almacenamiento de apoyo (support) permiten por lo menos 16 ndices por tabla y una longitud total del ndice de al menos 256 bytes.La mayora de los motores de almacenamiento tienen lmites ms altos.

Cmo usa MySQL los ndices?Para buscar filas que coincidan con una clusula WHERE rpidamente.Para recuperar filas de otras tablas al realizar joins.Para encontrar el valorMIN()yMAX() de una columna de ndice especficoskey_col.

Tipos de ndice en MySQLPRIMARY KEY: ndice diseado para consultas especialmente rpidas. Todos sus campos deben ser UNICOS y no admite NULLUNIQUE: es aquel que no permite almacenar dos datos iguales.FULLTEXT: (soportado slo por MyISAM)permite realizar bsquedas de palabras. Se pueden crear FULLTEXT sobre columnas tipo CHAR, VARCHAR o TEXT.Una vez creado se pueden hacer bsquedas de la siguiente manera:SELECT * FROM nombre_tabla WHERE MATCH(nombre_indice_fulltext) AGAINST('palabra_a_buscar');

Tipos de ndice en MySQLSPATIAL: su uso comn es en tablas geom que almacene columnas del tipo GEOMETRY. Para tablas MyISAM, MySQL puede crear ndices SPATIAL del mismo modo que los ndices regulares , pero agregando la palabra reservada SPATIAL, como se ver ms adelante.

Prefijo: Concol_name ( N )de sintaxis en una especificacin de ndice, puede crear un ndice que utiliza slo la primeraNcaracteres de una columna de cadena.Indexacin slo un prefijo de valores de columna de esta manera puede hacer un fichero ndice mucho menor.Regla de la izquierdaSi necesitamos un SELECT ... WHERE columna_1 = X AND columna_2 = Y y ya tenemos un ndice con la columna_1, podemos crear un segundo ndice con la columna 2, o mejor todava, crear un nico ndice combinado con las columnas 1 y 2. Estos son los ndices multicolumna, o compuestos.No obstante si tenemos ndicesmulticolumnay se utilizan en las clausulas WHERE, se debe incluir siempre de izquierda a derecha las columnas indexadas; o el ndice NO se usar:Supongamos un INDEX usuario (id, name, adress), y una clusulaSELECT ... WHERE NAME = x. Este Select no aprovechar el ndice. Tampoco lo hara unSELECT ... WHERE ID =X AND ADRESS = Y. Cualquier consulta que incluya una columna parte del INDEX sin incluir adems las columnas a su izquierda, no har uso del ndice.Por tanto en nuestro ejemplo slo sacaran provecho del ndice las consultasSELECT ... WHERE ID = x, oWHERE ID = X AND NAME = yoWHERE ID = x AND NAME = y AND ADRESS = ZCreando un ndice en MySQLCREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [index_type] ON tbl_name (index_col_name,...) [index_type]

index_col_name: col_name [(length)] [ASC | DESC]index_type: USING {BTREE | HASH}Uso de PRIMARY KEYEl PRIMARY KEY de una tabla representa la columna o el conjunto de columnas que se utilizan en la mayora de las preguntas vitales.Tiene un ndice asociado, para el rendimiento de consulta rpida.Beneficios de rendimiento de consulta de la optimizacin NOT NULL, ya que no puede incluir ningnvalor NULL.Con el motor de almacenamiento InnoDB, los datos de la tabla se organizan fsicamente para hacer ultra-rpido y bsquedas de tipos sobre la base de la columna de clave principal o columnas.ndices de columnaEl tipo ms comn de ndice implica una sola columna, el almacenamiento de copias de los valores de esa columna en una estructura de datos, lo que permite bsquedas rpidas de las filas con los valores de la columna correspondienteLa estructura de datos B-TREE permite encontrar rpidamente el ndice de un valor especfico, un conjunto de valores, o un rango de valores, lo que corresponde a los operadores como=,>,,BETWEEN,IN, y as sucesivamente, en unWHEREclusula.ndices de mltiples columnasMySQL puede crear ndices compuestos (es decir, los ndices de varias columnas).Un ndice puede ser de hasta 16 columnas.Un ndice de mltiples columnas puede ser considerado como un conjunto ordenado, las filas de los cuales contienen los valores que se crean mediante la concatenacin de los valores de las columnas indexadas.

ConcurrenciaConcurrenciaProceso en el que dos transacciones o ms se ejecutan independientemente y realizando todas las acciones para las cuales fueron creadas y dejando a la base de datos en un estado consistente.

Cada transaccin concurrente debe cumplir con las caractersticas ACID: Atomicidad, Consistencia, aIslamiento, Durabilidad.ConcurrenciaEn MySQL, esta misin se enfoca en el motor de Base de Datos INNODB.

MySQL tiene al motorde almacenamiento INNODB como mecanismo para el manejo de concurrencia.

Motor de Almacenamiento INNODB* Dota a MySQL de un motor de almacenamiento transaccional.

* Posee capacidades de COMMIT, ROLLBACK y recuperacin ante fallas.

* Mximo rendimiento al procesar grandes volmenes de datos.

* Soporta restricciones FOREIGN KEY.Motor de Almacenamiento INNODB* Implementa dos protocolos para la concurrencia:

BLOQUEO A NIVEL DE FILAS

BLOQUEO A NIVEL DE TABLAS

y se puede configurar en modo MVCC (CONTROL MULTIVERSIN)Modos de Bloqueo INNODB1) A nivel de Filas.A este nivel tenemos dos categoras:

1.a) Compartido(S): permite a una transaccin solo leer una fila1.b) Exclusivo(X): permite a una transaccin modificar o eliminar una filaModos de Bloqueo INNODBUn extra

INNODB soporta bloqueo de granularidad mltiple

(bloqueos en registros y bloqueos en tablas enteras, simultneamente)Modos de Bloqueo INNODB2) A nivel de Tablas.

Denominados bloqueos de Intencin, quiere decir que: la transaccin indica que tipo de bloqueo requerir sobre una fila de dicha tabla.Modos de Bloqueo INNODB Tipos de Bloqueo de Intencin.

2.a) Intencin Compartida(IS): T trata de establecer bloqueos S en tuplas individuales de la tabla.

2.b) Intencin Exclusiva(IX): T trata de establecer bloqueos X en todas las tuplas de la tabla.

Modos de Bloqueo INNODBProtocolo de Bloqueo de Intencin.

Idea Bsica:Antes que una determinada transaccin logre un bloqueo(S)/bloqueo(X) en una determinada fila, antes necesita establecer un bloqueo(S)/bloqueo(X) en la tabla que contiene esta filaModos de Bloqueo INNODBEjemplos de sentencias MySQL para bloqueo:

SELECT FROM LOCK IN SHARE MODELOCK TABLES tbl_name [AS alias]{READ [LOCAL] | [LOW PRIORITY] WRITE}

UNLOCK TABLESModos de Bloqueo INNODBTabla de compatibilidad entre tipos de bloqueos:

Configuracin de los Niveles de Aislamiento en INNODB* Toda la actividad del usuario, se establece en una transaccin.

* INNODB, posee un modo de ejecucin automtica (configurable) llamado AUTOCOMMIT.

Si (AUTOCOMMIT = 1) -> cada sentencia SQL es una transaccin individual

Si (AUTOCOMMIT = 0) -> cada usuario tiene una transaccin abierta

Niveles de Aislamiento en INNODBHay 4 niveles que ofrece INNODB para las transacciones:

READ COMITTED

READ UNCOMITTED (lectura sucia)

REPETEABLE READ

SERIALIZABLERecuperacinRecuperacinSe puede definir bsicamente como todos aquellos mecanismos y mtodos por las cuales pasa una base de datos para recuperar las acciones hechas por las transacciones, daadas debido a algn factor interno o externo a la BD.

Recuperacin en MySQL1.- Tipos: MySQL implementa dos tipos o mtodos de recuperacin.

1.a) Basada en BINARY LOG

1.b) Modificacin Inmediata de la BD (dependiendo del estado de AUTOCOMMIT {0,1}).

Recuperacin en MySQL2.- Estructuras.

* MySQL utiliza dos archivos de registros binarios: ib_logfile0 y ib_logfile1 (son compartidos por todas las tablas INNODB.

* El registro binario se encarga de actualizar la base de datos tan completamente como sea posible (contiene todas las copias hechas tras la copia de seguridad)

Recuperacin en MySQL2.- Estructuras.

* Uso de la herramienta mysqldump

* El cliente mysqldump puede usarse para volcar una BD o para transferir datos a otro servidorLOG de MySQLTiene dos propsitos importantes:

* La base de replicacin consiste en: maestro enva los eventos, contenidos en su log binario, a sus esclavos, y ellos ejecutan estos eventos para hacer el mismo procedimiento que el maestro* Si se hace una restauracin de un archivo de copia de seguridad, los eventos en log binario (que se guardaron luego de hacer esta copia de seguridad) se re-ejecutan.LOG de MySQLDonde se almacenan los log binarios?

Normalmente siguen esta ruta de almacenamiento en DISCO DURO:C://var/log/mysql/ LOG de MySQLVisualizacin de los logs binarios

En LINUX, se visualizan de esta manera:

root@equipo: /etc/mysql# ls l /var/log/mysql Referenciashttp://tallerbd.wikispaces.com/Manejador+de+Transacci%C3%B3n+y+Recuperaci%C3%B3nhttp://ldc.usb.ve/~yudith/docencia/UCV/SistemasDistribuidos/MecanismosRecuperaci%C3%B3nSMBDSahyra.pdfhttp://www.webtaller.com/construccion/lenguajes/mysql/lecciones/tipos_tablas_usadas_mysql.phphttp://dev.mysql.com/doc/refman.htmlhttp://ict.udlap.mx/people/carlos/is341/bases10.html

GRACIAS POR SU ATENCION