Mysql Motores

3,358 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,358
On SlideShare
0
From Embeds
0
Number of Embeds
22
Actions
Shares
0
Downloads
89
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Mysql Motores

  1. 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. 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. 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. 4. Administración MySQL: ¿Qué es MySQL? 11/4/08 /home/irodriguez/mysql-motores.odp page 4
  5. 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. 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. 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. 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. 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. 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. 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. 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
  13. 13. ¿Café?
  14. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 27. Administración MySQL: ¿Preguntas? ¿Preguntas? 11/4/08 /home/irodriguez/mysql-motores.odp page 27
  28. 28. Administración MySQL GRACIAS 11/4/08 /home/irodriguez/mysql-motores.odp page 28

×