Sesión 3: Conoce los problemas más comunes que … · • Objetivo: resolver cualquier posible...

22
1 Sesión 3: Conoce los problemas más comunes que afectan el desempeño de RDBMS y como MySQL los resuelve Manuel Contreras [email protected] [email protected] Blog: mysql-espanol.org Twitter: mysql_espanol

Transcript of Sesión 3: Conoce los problemas más comunes que … · • Objetivo: resolver cualquier posible...

1

Sesión 3:

Conoce los problemas más comunes que afectan el desempeño de RDBMS y como MySQL los resuelve

Manuel Contreras

[email protected]@oracle.com

Blog: mysql-espanol.orgTwitter: mysql_espanol

2

Resumen

• Sesiones Anteriores en:http://mysql-espanol.org/2010/11/25/sesiones-sgcampus-mysql/

• Sesión 1: – Estrategias para separar carga en múltiples instancias

MySQL ( separación de lecturas y escrituras )– Practicas recomendadas para abilitar High Availability

MySQL

• Sesión 2:– Benchmark: mysql-sqlbench, sysbench– Categorías de problemas típicos en bases de datos

relacionales– Simulación de carga, para hacer pruebas de stress en

servidores MySQL

3

Sesión 3) Agenda

• Introducción a variables MySQL Server– my.cnf

• Monitor MySQL Server– Performance Advisors

• Conceptos básicos de Índices– Optimización de queries– Exaplain Query

4

MySQL Server: Configuración • basedir: directorio home de binarios MySQL

/usr/local/mysql

• datadir: directorio home de datos, índices, tablas, schemas, etc.../data/mysql

• my.cnf File ( archivo de Configuración )/etc/my.cnfBASEDIR/support-files ( plantillas )

• Logs

• Configuración de rutas de archivos my.cnf

• Storage Engines

• Algoritmos para procesamiento de datos

• MyISAM, InnoDB, Memory, NDB Cluster, Archive, etc...

5

MySQL – Storage Engines

6

MySQL - Bitácoras• Log (bitácoras) MySQL

• General log (log=file)• Todos los queries sin importar el resultado

• Error Log (log-error=file)• Errores del sistema

• Slow queries Log (log_slow_queries=file)• Queries que demoran más de un tiempo específico

• long_query_time=N

• Binary Log (log-bin=file)• Update, Inserts

• NO Selects

• mysqlbinlog utility

• Variables, se configuran en archivo: • my.cnf (Unix)

• my.ini (MS Windows)

7

MySQL – Configuration File

• Rutas en orden donde se busca my.cnf– /etc/my.cnf– /etc/mysql/my.cnf– $SYSCONFDIR/my.cnf

• (--sysconfdir option en compilación)

– $MYSQL_HOME/my.cnf– --defaults-extra-file=PATH– ~/.my.cnf

8

MySQL – Configuration File (2)

• Recomendación:– Solo usar /etc/my.cnf or /etc/mysql/my.cnf

y opcionalmente...~/.my.cnf para almacenar passwords y protegerlo vía OS

• Asociar archivo my.cnf, con una instancia mysqld:

– $MySQL_HOME/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql --defaults-file=/etc/my.cnf

9

• MySQL Server Variables

• join_buffer_size (sesión).- memoria para ejecución de queries con JOINs

• key_buffer_size (global).- memoria para indices MyISAM

• innodb_buffer_pool_size (global).- memoria para InnoDB Data / índices

• query_cache_size (global)

• read_buffer_size (global).- memoria para table scan

• sort_buffer_size (global).- memory para ordenar datos

• thread_stack (global).- memoria asignada a cada thread

• tmp_table_size (global) .- memoria para tablas temporales

• Plantillas: $BASE_DIR/support-files

Optimización – MySQL Server

http://forums.mysql.com/read.php?24,92131,92131

10

• Obteniendo información

• Show variables \G ( valores de variables establecidos )

• Show status \G ( valores de consumo real )

• Show engine InnoDB status \G ( consumo de recursos InnoDB )

• Show processlist \G ( lista de procesos running )

• MySQL Enterprise Monitor

• Alertas

• Advisors

• Query Analyzer

Optimización – MySQL Server (2)

11

MySQL Enterprise Monitor

12

13

14

15

Optimización MySQL• Servicios Profesionales - MySQL

• Soporte técnico MySQL• Soporte a través de sistema web (service tickets)

• Telefónico 24x7

• Objetivo: resolver cualquier posible problema en la configuración del motor de base de datos MySQL

• Servicios pro-activos de consultoría

• Soporte a través de sistema web (service tickets ), Telefónico

• Performance tuning

• Objetivo: encontrar la configuración óptima del ambiente, afinación de variables my.cnf, la cual explote la arquitectura en HW, recursos, OS, y tipo de queries, datos

• Cursos para DBAs: (5 días) en sitio o eLearning, para optmizar servidores MySQL Community

16

Optimización de Queries• Índices

– Estructura de datos que mejora la velocidad en operaciones de lectura en registros de Bds

• Índices en MySQL:– Primary Key (No NULL)

– Unique Key ( NULL ), sobre valores no repetidos

– Non-Unique, cualquier valor y acepta repetidos

– Fulltext: indice para tipo texto en tablas MyISAM

• Distintos algoritmos– Hashing

– Btree

– Rtree ( Spatial )

17

Explain Query (1)

18

Explain Query (2)1)

2)

19

Explain Query (3) – No index

20

Optimizando Query - Agregando índices

• Índices

21

Explain Query - con Índices

22

Sesión 3:

Conoce los problemas más comunes que afectan el desempeño de RDBMS y como MySQL los resuelve

Manuel Contreras

[email protected]@oracle.com

Blog: mysql-espanol.orgTwitter: mysql_espanol