Upload
lynhu
View
224
Download
0
Embed Size (px)
Citation preview
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...
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)
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 )
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