Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Twitter: @mysql_espanol
Facilitadores
• Pedro.Andrade@Oracle.com
• Responsable en la adopción de MySQL en latam
• Empleado MySQL previo a compra por Sun, y Oracle
• 11+ años de experiencia en el mercado de las TI
• Manuel.Contreras@Oracle.com
• Ingeniero consultor de MySQL para latam
• Empleado de Sun, desde el 2003
• Certificado como MySQL DBA, Java Programmer, Jave EE
Developer
• Pro Open Source: Linux, Java, Php, MySQL...
Compromiso de Oracle hacia clientes,
desarrolladores y usuarios de MySQL
• Continuo desarrollo de MySQL Enterprise & Community bajo
licenciamiento público (GPL)
• http://www.oracle.com/us/corporate/press/042364
Inversión en Software Libre
• Apoyando proyectos open source por muchos años
• Parte de la estrategia, “Complete. Open. Integrated.”
• Acelerar la innovación
• Extender la comunidad de desarrolladores
Estrategia:
Completa. Abierta. Integrada.
• Desarrollo
• Pruebas
• Administración
• Mantenimiento
• Basada en estándares abiertos
• Bajo costo
• Bajo riesgo
• Más confiable
La oferta mas completa en LAMP Stack
• MySQL
MySQL
• Mejorar MySQL
• #1 Open Source Database for Web Applications
• MySQL Workbench
– Administración:
– MER:
– Desarrollo de SQL (wizards)
• MySQL Enteprise Monitor
– Panel de Control para DBAs
• Alertas, monitor signos vitales, y performance advisors
• Query Analyzer
• Soporte Técnico – Oracle Premier Support
– 24x7
– Ingenieros especialistas en MySQL
• MySQL Enterprise Backup
– Hot backups / online backups
– incremental
MySQL Workbech
MySQL Workbech: administración DBAs
MySQL Workbech: desarrollo SQL
MySQL Workbech: Diagramas EER
MySQL Enterprise Monitor
• Vista única consolidada del
ambiente MySQL
• Auto descubrimiento de
servidores MySQL, replicación
y topologías
• Alertas y monitoreo adpatable
y basado en reglas
• Identificación de problemas
antes de que ocurran
• Reducción de riesgo y tiempo
de inactividad
• Facilidad para escalamiento
horizontal sin requerir más Un asistente DBA Virtual para
DBAs MySQL
Posibles Causas de Bottlenecks
• Application Tier
• Middleware: Java, PHP, .Net, C++, etc...
• Networking
• Comunicaciones: swtich, hub, routers, etc..
• Storage
• Tipo HD, File Systems, RAID, IO Latency
• Hardware Issues
• CPU, RAM, IO Contention
• RDBMS
• índices, schema, normalización
• Arquitectura RDBMS
• Read / Writes Split
• Replicación ( Latencia )
• Síncrona, Asíncrona, Semi- Sync
Benchmarking & Profiling
• Benchmarking
• Conjunto de técnicas que permite determinar el como se
desempeña un sistema
• Benchmark Full Stack
• Desde el request del cliente, hasta la ejecución de
transacción / operación en disco duro
• Benchmark específico por aplicación
• Aisla el resto de los componentes de la arquitectura
• Básico para saber: Donde estamos parados y si es susceptible
a mejorar
• Profiling
• Conjunto de técnicas que permiten determinar el por que se
desempeña un sistema de acuerdo a los resultados de un
benchmark
• Profiling Full Stack
• Profiling específico por aplicación
Benchmarking
• Métricas:
• Transacciones Por Unidad de Tiempo
• Tiempo de Respuestas ( Latency )
• Concurrencia
• Escalabilidad
• Errores comunes
• Usar solo un sub-set de datos
• Emular transacciones
1)
2)
Explain Query (3) – No index
Optimizando Query
Agregando índices
• Índices
Explain Query - con Índices
Optimización de Servidor
• Optimización de variables my.cnf
• Buffers Size, Pool de conexiones, threads, etc..
• Query Cache
• Fulltext Index – MyISAM
• Particionamiento de Tablas
• Horizontal
• Range, List, Hash, Key
• Obteniendo información
• Show variables \G ( valores de variables establecidos )
• Show status \G ( valores de signos vitales )
• Show engine InnoDB status \G
• Show processlist \G
• MySQL Enterprise Monitor
• Alertas
Recomendaciones Generales
• Utilizar la versión compilada para la plataforma elegida
• Solaris PKG
• Linux (.rmp, .deb)
• Tratar de evitar las versiones (.tar.gz) tarball
• Utilizar MySQL Enterprise Server a 64 bits
• MySQL Enterprise provee actualizaciones que Community integra en un
periodo mayor de actualización
• mysql>select VERSION();
• Utilizar un tipo de Storage Engine, adecuado al tipo de operaciones, tabla
• Utilizar las plantillas my.cnf, y hacer pruebas de benchmarking para encontrar la
que de mejores resultados
• Performance tuning
• Obtener información de monitor y recomendaciones del MEM
• Optimización de queries
• Particionamiento de tablas
• Query Cache
<Insert Picture Here>
Pedro.Andrade@Oracle.com
Manuel.Contreras@Oracle.com
@mysql_espanol
Blog: mysql-espanol.org