SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
Administración de MySQL
         Mysql Storage Engines

Iñaki Rodríguez
(irodriguez@ackstorm.es / irodriguez@virtualminds.es)


http://www.ackstorm.es
http://www.virtualminds.es
Administración MySQL: ¿Qué era MySQL?




           Simple
           No transaccional
           Rápido acceso
           Fácil de usar
           Desarrollada por una pequeña empresa
           GPL




 11/4/08         /home/irodriguez/mysql-motores.odp   page 2
Administración MySQL: ¿Qué es MySQL?



   Version Comercial y GPL (community)
   Transaccional
   Alta disponibilidad (réplica y clustering)
   Semi modular
   Triggers, store procedures, vistas,...
   Multiples motores de BBDD
   Motores de terceros
   Sun Microsystems




 11/4/08        /home/irodriguez/mysql-motores.odp   page 3
Administración MySQL: ¿Qué es MySQL?




 11/4/08     /home/irodriguez/mysql-motores.odp   page 4
Administración MySQL: Motores




   Almacenan datos e índices
   Características propias
   Abstracción
   SHOW ENGINES
   Varios motores para una sola BBDD
   Disco, Memoria y Remoto




 11/4/08         /home/irodriguez/mysql-motores.odp   page 5
Administración MySQL: Motores



   PRINCIPALES MOTORES

   MyISAM
   MERGE
   InnoDB
   Memory
   Archive
   Federated
   NDB




 11/4/08       /home/irodriguez/mysql-motores.odp   page 6
Administración MySQL: MyISAM - Generalidades



   No transaccional
   Bloqueo a nivel de tabla
           Ventaja: no hay deadlocks
           Desventaja: Desaconsejado en lecturas/escrituras
   Rapidez en consultas
   Portable
   Flag estado en índices
   Lecturas o Escrituras pero no ambas




 11/4/08             /home/irodriguez/mysql-motores.odp       page 7
Administración MySQL: MyISAM - Bloqueos




     A nivel de tabla
     Inserciones concurrentes
           OPTIMIZE TABLE defragmenta la tabla
     Prioridades (Escrituras vs. Consultas)
           LOW_PRIORITY
           HIGH_PRIORITY
           DELAYED




 11/4/08           /home/irodriguez/mysql-motores.odp   page 8
Administración MySQL: MyISAM – Formatos



   FIXED
           Ventaja: Búsquedas más rápidas
           Ventaja: Tamaño fijo de registro
           Desvantaja: Ocupan más espacio
   DYNAMIC
           Ventaja: Ocupan menos
           Desventaja: Más fragmentación
           Desventaja: Más lenta
   COMPRESED
           Ventaja: Ocupan mucho menos espacio
           Desventaja: Solo lectura



 11/4/08              /home/irodriguez/mysql-motores.odp   page 9
Administración MySQL: MyISAM – Ficheros



           Definición de estructura: .frm
           Datos: .MYD
           Índices: MYI




 11/4/08         /home/irodriguez/mysql-motores.odp   page 10
Administración MySQL: MERGE - Generalidades

   Colección de tablas MyISAM
   Tienen que ser idénticas
   Más lentas que MyISAM
   Operaciones soportadas:
           SELECT, DELETE, UPDATE
           INSERT: Con clausula en CREATE TABLE


 create table t1(texto varchar(100)) ENGINE=MYISAM;

 create table t2(texto varchar(100)) ENGINE=MYISAM;

 create table total(texto varchar(100)) ENGINE=MERGE UNION=(t1,t2) INSERT_METHOD=LAST;




 11/4/08              /home/irodriguez/mysql-motores.odp                page 11
Administración MySQL: MERGE - Ficheros



           Definición de estructura: .frm y .MRG
           Datos: .MYD del conjunto
           Índices: MYI del conjunto


 t1

 t2

 #INSERT_METHOD=LAST




 11/4/08         /home/irodriguez/mysql-motores.odp   page 12
¿Café?
Administración MySQL: InnoDB - Generalidades




           Motor de terceros (ahora de Oracle)
           Transaccional ACID Compliant
           InnoDB Tablespace
           Row-Locking
           Foreign Keys / Integridad referencial
           No tan rápida como MyISAM
           Aplicaciones de negocio
           Posibles deadlocks




 11/4/08      /home/irodriguez/mysql-motores.odp   page 14
Administración MySQL: InnoDB - Transacciones




      Innodb es ACID Compliant
           Atomic
           Consistent
           Isolated
           Durable
      SET AUTOCOMMIT = 0
      START TRANSACTION / COMMIT / ROLLBACK
      SAVEPOINT / ROLLBACK TO SAVEPOINT




 11/4/08              /home/irodriguez/mysql-motores.odp   page 15
Administración MySQL: InnoDB – Transaction Isolation


           READ UNCOMMITED
             Transacciones incompletas
           READ COMMITED
             Misma consulta, resultados distintos
           REPEATABLE READ
             Por defecto
             Consistencia
           SERIALIZABLE
             Igual que la anterior
             + registro consultado no puede cambiarse hasta COMMIT




 11/4/08            /home/irodriguez/mysql-motores.odp    page 16
Administración MySQL: InnoDB – Transaction Isolation

   Configuración por defecto desde my.cnf


 [mysqld]

 transaction-isolation = READ-COMMITED




   Desde la sesión
           SET GLOBAL TRANSACTION ISOLATION LEVEL nivel;
           SET SESSION TRANSACTION ISOLATION LEVEL nivel;
           SET TRANSACTION ISOLATION LEVEL nivel;




 11/4/08             /home/irodriguez/mysql-motores.odp   page 17
Administración MySQL: InnoDB - Bloqueos



   No locks en consultas (multi-version)
   Row-level locking
           N clientes -> mismo registro (lectura)
           N clientes -> distinto registro (escritura)
           N clientes -> mismo registro (escritura / imposible)
               Sin posibilidad de lectura salco READ UNCOMMITED
   Tratamiendo de Deadlocks
           Detectado: ROLLBACK menos registros
           Sin detectar: Timeout y ROLLBACK




 11/4/08               /home/irodriguez/mysql-motores.odp         page 18
Administración MySQL: InnoDB – Buffers y Logs


   Buffer de datos
           innodb_buffer_pool_size (8MB por defecto)
           Reduce el acceso a disco
   Buffer de transacciones
           innodb_log_buffer_size (1MB por defecto)
           Entre 1MB y 8MB (más no recomendable)
   Log de transacciones
           ib_logfile0 / ib_logfile1
           innodb_log_files_in_group = n
           innodb_log_file_size = nnM
           Escritura del buffer a disco cada segundo




 11/4/08               /home/irodriguez/mysql-motores.odp   page 19
Administración MySQL: InnoDB – Transaction buffer


   Cada transacción se guarda en memoria y luego se
   escribe en disco
   Dos operaciones: write y flush (buffer FS)
   Control del E/S generado
   innodb_flush_log_at_trx_commit = n
           0 – W/F cada segundo. Perdida en caída
           1 – ACID Compliance: W/F después de cada COMMIT
           2 – W en commit. Flush cada segundo. Más segura que 0




 11/4/08             /home/irodriguez/mysql-motores.odp     page 20
Administración MySQL: InnoDB – Ficheros

   Definición de la tabla: .frm
   Tablespace
           Índices y datos en un solo espacio
           Compartido para todas las tablas
           También pueden repartirse en varios tablespace
           Fichero o raw
           innodb_data_file_path = ibdata1:10M
           innodb_data_file_path = ibdata1:10M:autoextend
           innodb_data_file_path =
           ibdata1:10M:autoextend:max:50M
           innodb_data_file_path = /dev/sda1:10Gnewraw
           innodb_data_file_path = /dev/sda1:10Graw
           SHOW ENGINE INNODB STATUS



 11/4/08              /home/irodriguez/mysql-motores.odp    page 21
Administración MySQL: MEMORY




   Velocidad tremenda
   Estructura de tabla en disco, datos e índices en
   memoria
   No sobrevive a un reinicio, la estructura sí
   No pueden usarse ni TEXT ni BLOB
   Indices
           HASH: Para operaciones de comparacion (= / <=>)
           BTREE: Para el resto




 11/4/08             /home/irodriguez/mysql-motores.odp      page 22
Administración MySQL: ARCHIVE




   Se usa para almacenar grandes cantidades de
   datos
   Compresión en cada inserción
   Sin índices
   No soporta AUTO_INCREMENT
   Datos y definición: .ARZ y .ARM
   .ARN en proceso OPTIMIZE TABLE
   Lock a nivel de tabla




 11/4/08         /home/irodriguez/mysql-motores.odp   page 23
Administración MySQL: FEDERATED - Generalidades




   Tabla en servidor remoto
   Nueva en MySQL 5.x
   Definición en local
   No transaccional
   SELECT, DELETE, UPDATE, e INSERT
   Sin bloqueos




 11/4/08        /home/irodriguez/mysql-motores.odp   page 24
Administración MySQL: FEDERATED - Conexión

   Datos de conexión en comentario
 Nodo1 (192.168.1.1)

 CREATE TABLE FED_TBL ( texto varchar(100) NOT NULL);



 Nodo2 (192.168.1.2)

 CREATE TABLE FED_TBL (texto varchar(100) NOT NULL) ENGINE=FEDERATED
    COMMENT=’mysql://user:pass@192.168.1.1/dbname/FED_TBL;




   Las querys se ejecutan en remoto




 11/4/08               /home/irodriguez/mysql-motores.odp          page 25
Administración MySQL: NDB




   Primer sistema en Cluster
   Mysql > 4.1
   HA
   Alto rendimiento
   Escalable
   Detalles para otra charla ;)




 11/4/08         /home/irodriguez/mysql-motores.odp   page 26
Administración MySQL: ¿Preguntas?




           ¿Preguntas?




 11/4/08      /home/irodriguez/mysql-motores.odp   page 27
Administración MySQL




          GRACIAS



11/4/08   /home/irodriguez/mysql-motores.odp   page 28

Más contenido relacionado

La actualidad más candente

07 Php. Instalando Php My Admin
07 Php. Instalando Php My Admin07 Php. Instalando Php My Admin
07 Php. Instalando Php My Admin
José M. Padilla
 
Requerimientos de instalación
Requerimientos de instalaciónRequerimientos de instalación
Requerimientos de instalación
Princezitha Ruiz
 
Resolucion de conflictos bases datos 2
Resolucion de conflictos bases datos 2Resolucion de conflictos bases datos 2
Resolucion de conflictos bases datos 2
Velmuz Buzz
 
Acceso a base de datos con php
Acceso a base de datos con phpAcceso a base de datos con php
Acceso a base de datos con php
jaumeven
 

La actualidad más candente (16)

Tomcat y Jboss
Tomcat y JbossTomcat y Jboss
Tomcat y Jboss
 
07 Php. Instalando Php My Admin
07 Php. Instalando Php My Admin07 Php. Instalando Php My Admin
07 Php. Instalando Php My Admin
 
Requerimientos de instalación
Requerimientos de instalaciónRequerimientos de instalación
Requerimientos de instalación
 
Requerimientos de PostgreSQL
Requerimientos de PostgreSQLRequerimientos de PostgreSQL
Requerimientos de PostgreSQL
 
Guillermo victor instalacion_sakai_2_9_0_lms
Guillermo victor instalacion_sakai_2_9_0_lmsGuillermo victor instalacion_sakai_2_9_0_lms
Guillermo victor instalacion_sakai_2_9_0_lms
 
Interchange CMS - e-commerce
Interchange CMS - e-commerceInterchange CMS - e-commerce
Interchange CMS - e-commerce
 
Manual de instalacion de Mongo db
Manual de instalacion de Mongo dbManual de instalacion de Mongo db
Manual de instalacion de Mongo db
 
Proyecto H3m Unisiga2 Proceso Instalacion 5 De 5
Proyecto H3m Unisiga2 Proceso Instalacion 5 De 5Proyecto H3m Unisiga2 Proceso Instalacion 5 De 5
Proyecto H3m Unisiga2 Proceso Instalacion 5 De 5
 
Integración Mahara Moodle
Integración Mahara MoodleIntegración Mahara Moodle
Integración Mahara Moodle
 
Curso de ms dos
Curso de ms dosCurso de ms dos
Curso de ms dos
 
JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3
JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3 JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3
JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3
 
Resolucion de conflictos bases datos 2
Resolucion de conflictos bases datos 2Resolucion de conflictos bases datos 2
Resolucion de conflictos bases datos 2
 
Acceso a base de datos con php
Acceso a base de datos con phpAcceso a base de datos con php
Acceso a base de datos con php
 
Exposicio nexchange2003
Exposicio nexchange2003Exposicio nexchange2003
Exposicio nexchange2003
 
Introducción a Servidor HTTP Apache
Introducción a Servidor HTTP ApacheIntroducción a Servidor HTTP Apache
Introducción a Servidor HTTP Apache
 
Introducción a JBoss
Introducción a JBossIntroducción a JBoss
Introducción a JBoss
 

Destacado

Programacion de SQL y MySQL
Programacion de SQL y MySQLProgramacion de SQL y MySQL
Programacion de SQL y MySQL
huritomo1998
 
Ejemplos de php_mysql
Ejemplos de php_mysqlEjemplos de php_mysql
Ejemplos de php_mysql
I LG
 
Curso TIC de PHP y MSQL Parte 2
Curso TIC de PHP y MSQL Parte 2Curso TIC de PHP y MSQL Parte 2
Curso TIC de PHP y MSQL Parte 2
Wilian
 
Curso TIC de PHP y MSQL
Curso TIC de PHP y MSQLCurso TIC de PHP y MSQL
Curso TIC de PHP y MSQL
Wilian
 
Proyecto sistema evaluacion web
Proyecto sistema evaluacion webProyecto sistema evaluacion web
Proyecto sistema evaluacion web
longojose
 
Curso TIC de PHP y MSQL Parte 3
Curso TIC de PHP y MSQL Parte 3Curso TIC de PHP y MSQL Parte 3
Curso TIC de PHP y MSQL Parte 3
Wilian
 

Destacado (20)

PHP MySql - FIEI - UNFV Clase07
PHP MySql - FIEI - UNFV Clase07PHP MySql - FIEI - UNFV Clase07
PHP MySql - FIEI - UNFV Clase07
 
Programacion de SQL y MySQL
Programacion de SQL y MySQLProgramacion de SQL y MySQL
Programacion de SQL y MySQL
 
Ejemplos de php_mysql
Ejemplos de php_mysqlEjemplos de php_mysql
Ejemplos de php_mysql
 
Mysql
MysqlMysql
Mysql
 
PHP MySql - FIEI - UNFVClase06
PHP MySql - FIEI - UNFVClase06PHP MySql - FIEI - UNFVClase06
PHP MySql - FIEI - UNFVClase06
 
PHP MySql FIEI - UNFV Clase05
PHP MySql FIEI - UNFV Clase05PHP MySql FIEI - UNFV Clase05
PHP MySql FIEI - UNFV Clase05
 
PPH MySql - FIEI - UNFV Clase02
PPH MySql - FIEI - UNFV Clase02PPH MySql - FIEI - UNFV Clase02
PPH MySql - FIEI - UNFV Clase02
 
Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+
Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+
Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+
 
PHP Y MYSQL
PHP Y MYSQLPHP Y MYSQL
PHP Y MYSQL
 
PHP MySql - FIEI - UNFV Clase03
PHP MySql - FIEI - UNFV Clase03PHP MySql - FIEI - UNFV Clase03
PHP MySql - FIEI - UNFV Clase03
 
Curso TIC de PHP y MSQL Parte 2
Curso TIC de PHP y MSQL Parte 2Curso TIC de PHP y MSQL Parte 2
Curso TIC de PHP y MSQL Parte 2
 
PHP MYSQL - FIEI-UNFV Clase 01
PHP MYSQL - FIEI-UNFV Clase 01PHP MYSQL - FIEI-UNFV Clase 01
PHP MYSQL - FIEI-UNFV Clase 01
 
Curso TIC de PHP y MSQL
Curso TIC de PHP y MSQLCurso TIC de PHP y MSQL
Curso TIC de PHP y MSQL
 
desarrolo de sitios web php y mysql
desarrolo de sitios web php y mysqldesarrolo de sitios web php y mysql
desarrolo de sitios web php y mysql
 
2685008 taller-java
2685008 taller-java2685008 taller-java
2685008 taller-java
 
Php.y.my sql
Php.y.my sqlPhp.y.my sql
Php.y.my sql
 
Guardar en base de datos MySQL desde HTML con PHP.
Guardar en base de datos MySQL desde HTML con PHP.Guardar en base de datos MySQL desde HTML con PHP.
Guardar en base de datos MySQL desde HTML con PHP.
 
Proyecto sistema evaluacion web
Proyecto sistema evaluacion webProyecto sistema evaluacion web
Proyecto sistema evaluacion web
 
Bases de datos mysql
Bases de datos mysqlBases de datos mysql
Bases de datos mysql
 
Curso TIC de PHP y MSQL Parte 3
Curso TIC de PHP y MSQL Parte 3Curso TIC de PHP y MSQL Parte 3
Curso TIC de PHP y MSQL Parte 3
 

Similar a Mysql Motores

Mysql Administracion
Mysql AdministracionMysql Administracion
Mysql Administracion
Irontec
 
Requerimientos de instalacion
Requerimientos de instalacionRequerimientos de instalacion
Requerimientos de instalacion
josebunbury
 
Gestores de base de datos
Gestores de base de datosGestores de base de datos
Gestores de base de datos
Marlene Torres
 
Participacion planificacion de disco raid
Participacion planificacion de disco raidParticipacion planificacion de disco raid
Participacion planificacion de disco raid
pcarcamo1984
 

Similar a Mysql Motores (20)

Formación en Almacenamiento, Open Storage Soluciones Low Cost.
Formación en Almacenamiento, Open Storage Soluciones Low Cost.Formación en Almacenamiento, Open Storage Soluciones Low Cost.
Formación en Almacenamiento, Open Storage Soluciones Low Cost.
 
Charla técnica comercial v3.0 junio 2014 db visit productos
Charla técnica comercial v3.0 junio 2014 db visit productosCharla técnica comercial v3.0 junio 2014 db visit productos
Charla técnica comercial v3.0 junio 2014 db visit productos
 
Db2 10 afinamiento
Db2 10   afinamientoDb2 10   afinamiento
Db2 10 afinamiento
 
My SQL
My SQLMy SQL
My SQL
 
Raid
RaidRaid
Raid
 
Cluster MySQL en Windows
Cluster MySQL en WindowsCluster MySQL en Windows
Cluster MySQL en Windows
 
Mysql Administracion
Mysql AdministracionMysql Administracion
Mysql Administracion
 
Mysql Administracion
Mysql AdministracionMysql Administracion
Mysql Administracion
 
Postgresql expo
Postgresql expoPostgresql expo
Postgresql expo
 
Discos duros vera-dui
Discos duros vera-duiDiscos duros vera-dui
Discos duros vera-dui
 
Optimización del rendimiento con MySQL
Optimización del rendimiento con MySQLOptimización del rendimiento con MySQL
Optimización del rendimiento con MySQL
 
Alternativas de alta disponiblidad en MySQL - MySQL Meetup - Montevideo - Mar...
Alternativas de alta disponiblidad en MySQL - MySQL Meetup - Montevideo - Mar...Alternativas de alta disponiblidad en MySQL - MySQL Meetup - Montevideo - Mar...
Alternativas de alta disponiblidad en MySQL - MySQL Meetup - Montevideo - Mar...
 
Reporte cluster
Reporte clusterReporte cluster
Reporte cluster
 
Requerimientos de instalacion
Requerimientos de instalacionRequerimientos de instalacion
Requerimientos de instalacion
 
Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2
 
MySQL Una Introduccion Tecnica
MySQL Una Introduccion TecnicaMySQL Una Introduccion Tecnica
MySQL Una Introduccion Tecnica
 
Gestores de base de datos
Gestores de base de datosGestores de base de datos
Gestores de base de datos
 
Modificacion de registros de windows
Modificacion de registros de windows Modificacion de registros de windows
Modificacion de registros de windows
 
Arquitectura risc
Arquitectura riscArquitectura risc
Arquitectura risc
 
Participacion planificacion de disco raid
Participacion planificacion de disco raidParticipacion planificacion de disco raid
Participacion planificacion de disco raid
 

Más de Iñaki Rodríguez (8)

Seguridad en Internet para 6 Primaria Nuevo
Seguridad en Internet para 6 Primaria NuevoSeguridad en Internet para 6 Primaria Nuevo
Seguridad en Internet para 6 Primaria Nuevo
 
Seguridad en Internet v2
Seguridad en Internet v2Seguridad en Internet v2
Seguridad en Internet v2
 
Seguridad internet para niños
Seguridad internet para niñosSeguridad internet para niños
Seguridad internet para niños
 
Seguridad internet para padres y madres (AMPAs)
Seguridad internet para padres y madres (AMPAs)Seguridad internet para padres y madres (AMPAs)
Seguridad internet para padres y madres (AMPAs)
 
44Con Malware Workshop
44Con Malware Workshop44Con Malware Workshop
44Con Malware Workshop
 
One Flaw over the Cuckoo's Nest
One Flaw over the Cuckoo's NestOne Flaw over the Cuckoo's Nest
One Flaw over the Cuckoo's Nest
 
APT - A Pretty Trojan
APT - A Pretty TrojanAPT - A Pretty Trojan
APT - A Pretty Trojan
 
Show me your kung fuzz
Show me your kung fuzzShow me your kung fuzz
Show me your kung fuzz
 

Último

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
silviayucra2
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
241521559
 

Último (10)

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 

Mysql Motores

  • 1. Administración de MySQL Mysql Storage Engines Iñaki Rodríguez (irodriguez@ackstorm.es / irodriguez@virtualminds.es) http://www.ackstorm.es http://www.virtualminds.es
  • 2. Administración MySQL: ¿Qué era MySQL? Simple No transaccional Rápido acceso Fácil de usar Desarrollada por una pequeña empresa GPL 11/4/08 /home/irodriguez/mysql-motores.odp page 2
  • 3. Administración MySQL: ¿Qué es MySQL? Version Comercial y GPL (community) Transaccional Alta disponibilidad (réplica y clustering) Semi modular Triggers, store procedures, vistas,... Multiples motores de BBDD Motores de terceros Sun Microsystems 11/4/08 /home/irodriguez/mysql-motores.odp page 3
  • 4. Administración MySQL: ¿Qué es MySQL? 11/4/08 /home/irodriguez/mysql-motores.odp page 4
  • 5. Administración MySQL: Motores Almacenan datos e índices Características propias Abstracción SHOW ENGINES Varios motores para una sola BBDD Disco, Memoria y Remoto 11/4/08 /home/irodriguez/mysql-motores.odp page 5
  • 6. Administración MySQL: Motores PRINCIPALES MOTORES MyISAM MERGE InnoDB Memory Archive Federated NDB 11/4/08 /home/irodriguez/mysql-motores.odp page 6
  • 7. Administración MySQL: MyISAM - Generalidades No transaccional Bloqueo a nivel de tabla Ventaja: no hay deadlocks Desventaja: Desaconsejado en lecturas/escrituras Rapidez en consultas Portable Flag estado en índices Lecturas o Escrituras pero no ambas 11/4/08 /home/irodriguez/mysql-motores.odp page 7
  • 8. Administración MySQL: MyISAM - Bloqueos A nivel de tabla Inserciones concurrentes OPTIMIZE TABLE defragmenta la tabla Prioridades (Escrituras vs. Consultas) LOW_PRIORITY HIGH_PRIORITY DELAYED 11/4/08 /home/irodriguez/mysql-motores.odp page 8
  • 9. Administración MySQL: MyISAM – Formatos FIXED Ventaja: Búsquedas más rápidas Ventaja: Tamaño fijo de registro Desvantaja: Ocupan más espacio DYNAMIC Ventaja: Ocupan menos Desventaja: Más fragmentación Desventaja: Más lenta COMPRESED Ventaja: Ocupan mucho menos espacio Desventaja: Solo lectura 11/4/08 /home/irodriguez/mysql-motores.odp page 9
  • 10. Administración MySQL: MyISAM – Ficheros Definición de estructura: .frm Datos: .MYD Índices: MYI 11/4/08 /home/irodriguez/mysql-motores.odp page 10
  • 11. Administración MySQL: MERGE - Generalidades Colección de tablas MyISAM Tienen que ser idénticas Más lentas que MyISAM Operaciones soportadas: SELECT, DELETE, UPDATE INSERT: Con clausula en CREATE TABLE create table t1(texto varchar(100)) ENGINE=MYISAM; create table t2(texto varchar(100)) ENGINE=MYISAM; create table total(texto varchar(100)) ENGINE=MERGE UNION=(t1,t2) INSERT_METHOD=LAST; 11/4/08 /home/irodriguez/mysql-motores.odp page 11
  • 12. Administración MySQL: MERGE - Ficheros Definición de estructura: .frm y .MRG Datos: .MYD del conjunto Índices: MYI del conjunto t1 t2 #INSERT_METHOD=LAST 11/4/08 /home/irodriguez/mysql-motores.odp page 12
  • 14. Administración MySQL: InnoDB - Generalidades Motor de terceros (ahora de Oracle) Transaccional ACID Compliant InnoDB Tablespace Row-Locking Foreign Keys / Integridad referencial No tan rápida como MyISAM Aplicaciones de negocio Posibles deadlocks 11/4/08 /home/irodriguez/mysql-motores.odp page 14
  • 15. Administración MySQL: InnoDB - Transacciones Innodb es ACID Compliant Atomic Consistent Isolated Durable SET AUTOCOMMIT = 0 START TRANSACTION / COMMIT / ROLLBACK SAVEPOINT / ROLLBACK TO SAVEPOINT 11/4/08 /home/irodriguez/mysql-motores.odp page 15
  • 16. Administración MySQL: InnoDB – Transaction Isolation READ UNCOMMITED Transacciones incompletas READ COMMITED Misma consulta, resultados distintos REPEATABLE READ Por defecto Consistencia SERIALIZABLE Igual que la anterior + registro consultado no puede cambiarse hasta COMMIT 11/4/08 /home/irodriguez/mysql-motores.odp page 16
  • 17. Administración MySQL: InnoDB – Transaction Isolation Configuración por defecto desde my.cnf [mysqld] transaction-isolation = READ-COMMITED Desde la sesión SET GLOBAL TRANSACTION ISOLATION LEVEL nivel; SET SESSION TRANSACTION ISOLATION LEVEL nivel; SET TRANSACTION ISOLATION LEVEL nivel; 11/4/08 /home/irodriguez/mysql-motores.odp page 17
  • 18. Administración MySQL: InnoDB - Bloqueos No locks en consultas (multi-version) Row-level locking N clientes -> mismo registro (lectura) N clientes -> distinto registro (escritura) N clientes -> mismo registro (escritura / imposible) Sin posibilidad de lectura salco READ UNCOMMITED Tratamiendo de Deadlocks Detectado: ROLLBACK menos registros Sin detectar: Timeout y ROLLBACK 11/4/08 /home/irodriguez/mysql-motores.odp page 18
  • 19. Administración MySQL: InnoDB – Buffers y Logs Buffer de datos innodb_buffer_pool_size (8MB por defecto) Reduce el acceso a disco Buffer de transacciones innodb_log_buffer_size (1MB por defecto) Entre 1MB y 8MB (más no recomendable) Log de transacciones ib_logfile0 / ib_logfile1 innodb_log_files_in_group = n innodb_log_file_size = nnM Escritura del buffer a disco cada segundo 11/4/08 /home/irodriguez/mysql-motores.odp page 19
  • 20. Administración MySQL: InnoDB – Transaction buffer Cada transacción se guarda en memoria y luego se escribe en disco Dos operaciones: write y flush (buffer FS) Control del E/S generado innodb_flush_log_at_trx_commit = n 0 – W/F cada segundo. Perdida en caída 1 – ACID Compliance: W/F después de cada COMMIT 2 – W en commit. Flush cada segundo. Más segura que 0 11/4/08 /home/irodriguez/mysql-motores.odp page 20
  • 21. Administración MySQL: InnoDB – Ficheros Definición de la tabla: .frm Tablespace Índices y datos en un solo espacio Compartido para todas las tablas También pueden repartirse en varios tablespace Fichero o raw innodb_data_file_path = ibdata1:10M innodb_data_file_path = ibdata1:10M:autoextend innodb_data_file_path = ibdata1:10M:autoextend:max:50M innodb_data_file_path = /dev/sda1:10Gnewraw innodb_data_file_path = /dev/sda1:10Graw SHOW ENGINE INNODB STATUS 11/4/08 /home/irodriguez/mysql-motores.odp page 21
  • 22. Administración MySQL: MEMORY Velocidad tremenda Estructura de tabla en disco, datos e índices en memoria No sobrevive a un reinicio, la estructura sí No pueden usarse ni TEXT ni BLOB Indices HASH: Para operaciones de comparacion (= / <=>) BTREE: Para el resto 11/4/08 /home/irodriguez/mysql-motores.odp page 22
  • 23. Administración MySQL: ARCHIVE Se usa para almacenar grandes cantidades de datos Compresión en cada inserción Sin índices No soporta AUTO_INCREMENT Datos y definición: .ARZ y .ARM .ARN en proceso OPTIMIZE TABLE Lock a nivel de tabla 11/4/08 /home/irodriguez/mysql-motores.odp page 23
  • 24. Administración MySQL: FEDERATED - Generalidades Tabla en servidor remoto Nueva en MySQL 5.x Definición en local No transaccional SELECT, DELETE, UPDATE, e INSERT Sin bloqueos 11/4/08 /home/irodriguez/mysql-motores.odp page 24
  • 25. Administración MySQL: FEDERATED - Conexión Datos de conexión en comentario Nodo1 (192.168.1.1) CREATE TABLE FED_TBL ( texto varchar(100) NOT NULL); Nodo2 (192.168.1.2) CREATE TABLE FED_TBL (texto varchar(100) NOT NULL) ENGINE=FEDERATED COMMENT=’mysql://user:pass@192.168.1.1/dbname/FED_TBL; Las querys se ejecutan en remoto 11/4/08 /home/irodriguez/mysql-motores.odp page 25
  • 26. Administración MySQL: NDB Primer sistema en Cluster Mysql > 4.1 HA Alto rendimiento Escalable Detalles para otra charla ;) 11/4/08 /home/irodriguez/mysql-motores.odp page 26
  • 27. Administración MySQL: ¿Preguntas? ¿Preguntas? 11/4/08 /home/irodriguez/mysql-motores.odp page 27
  • 28. Administración MySQL GRACIAS 11/4/08 /home/irodriguez/mysql-motores.odp page 28