Documentos de Académico
Documentos de Profesional
Documentos de Cultura
by Yolanda Pelez
I V
I T
I T
Conceptos bsicos
MySQL es un SGBDR Trabaja en modo cliente/servidor o embebido (librera multi-thread) Mltiples tipos de datos Escalabilidad Conectividad Localizacin
Arquitectura
Windows (x86, 32/64 bits) Linux (x86, 32/64 bit ; IA-64 ) Solaris (x86 y SPARC, 32/64 bit) SuSE Linux (x86, 32/64 bit) Mac OS X (x86, 32/64 bit) RedHat (x86, 32/64 bit ; IA-64) HP-UX (IA-64 ; HPPA 2.0w) ......
Gestor de conexiones:
Mantenimiento conexiones clientes Pool de conexiones Mximo conexiones simultneas Autentificacin de usuarios
Procesador de consultas:
Anlisis sintctico Representacin intermedia Consulta cach de consultas
Optimizador de consultas:
Plan de ejecucin ms eficiente Dependencia motor almacenamiento
Cach de consultas: guarda consultas y resultados anteriores para reutilizar Control de concurrencia:
Shared blocks: lecturas Exclusive blocks: escrituras Tarea compartida con motor almacenamiento
Gestor de transacciones:
Operaciones atmicas (todo o nada)
Gestor de recuperacin:
Rollback Transacciones distribudas Dependencia motor almacenamiento
Utilidades y herramientas:
Aplicaciones adicionales (backup, navegador de consultas, herramientas admin. grficas)
Motores de almacenamiento:
Interfcie abstracta con funciones comunes de gestin de datos a nivel fsico Implementacin a medida Caractersticas:
Concurrencia Soporte transacciones Integridad referencial Almacenamiento fsico Soporte ndices Cachs de memoria
Versiones (I)
MyISAM:
Almacenamiento y recuperacin de datos rpida No transaccional Bloqueos a nivel de tabla Bsquedas fulltext Disponible todas configuraciones y defecto Disco: 1 tabla = 3 ficheros (.frm, .MYD, .MYI) Reparacin y compresin de tablas (myisamchk, myisampack)
Versiones (II)
InnoDB:
Proceso grandes volmenes de datos con gran rendimiento Soporta transacciones ACID-compliance usando soporte MVCC y foreign keys Bloqueos a nivel de fila Espacio de almacenamiento propio
Auto-recuperable
Versiones (III)
Memory:
Almacena datos en RAM y definicin en disco Indices hash: acceso extremadamente rpido (tablas temporales) Desaparecen al parar el servidor Usan gran cantidad de memoria (no se convierten a disco)
Versiones (IV)
Archive:
Grandes cantidades de datos histricos sin ndices No soporta operaciones actualizacin de datos Ficheros en disco (.frm, .ARZ, .ARN) Almacena datos en ficheros de texto delimitados por coma (.CSV) No soporta ndices, ni particiones
CSV:
Versiones (V)
Blackhole:
Todo dato que le llega lo desprecia Registra operaciones en log binario y las replica a servidores esclavos Uso como filtro de datos Ficheros en disco slo estructura (.frm) Coleccin de tablas MyISAM idnticas Uso contrario a particionamiento Ficheros: estructura (.frm), datos (.MRG)
Merge:
Versiones (VI)
Federated:
El almacenamiento fsico de los datos es en un servidor remoto La creacin incluye los datos de conexin (CONNECTION o CREATE SERVER) Ambas tablas deben ser idnticas, pero con distinto motor Ficheros en disco slo .frm con estructura ms conexin
Versiones (VII)
Comparativa:
Transaccionales:
Ms seguros: recuperacin automtica o con log Marcha atrs si fallos Mejor concurrencia si muchos updates junto reads Ms rpidos Menos espacio en disco Menos consumo memoria en updates
No transaccionales:
Instalacin
http://dev.mysql.com/downloads/ Binarios: fcil instalacin, compilados con opciones ms habituales.
Paquete:
apt-cache search mysql-common apt-cache showpkg mysql-common apt-get install mysql-common
Distribucin de directorios:
Programas del cliente y servidor mysqld Ficheros de log y bases de datos Documentacin (mysql.info) Documentacin en formato unix Ficheros de inclusin Libreras Script de inicializacin (mysql_install_db) Ficheros con mensajes de error Ejemplos de configuraciones Pruebas de rendimiento
bin data docs man include lib scripts share support-files sql-bench
Opciones configure:
--help : opciones configure disponibles --prefix : directorio base --datadir: directorio de bases de datos --with-charset: juego de caracteres por defecto --with-collation: ordenacin por defecto --with-ssl: conexiones ssl entre cliente y servidor --with-mysqld-user: usuario deamon mysqld --with-tcp-port: puerto de servicio
Parametrizacin
Variables interesantes:
query_cache_size: queries repetidas sobre mismos datos key_buffer_size: tamao de buffer para ndices mayor, resultado ms rpido table_open_cache: cache donde se guardan las tablas que se leen para consultas sort_buffer: buffer para hacer ordenaciones read_rnd_buffer_size: despus de order by thread_cache: reutilizacin de threads, baja cpu tmp_table_size: espacio en memoria antes de bajar a disco
Administracin (I)
Herramientas:
mysql: interactiva por lnea de comandos mysqladmin: cliente para operaciones administrativas desde shell phpMyAdmin: interfcie grfica de administracin por web MySQL Control Center: interfcie grfica instalable, varias plataformas
Administracin (II)
Usuarios:
Creacin: create user <usuario>@<ip> [identified by 'contrasea'] ; Contrasea: set password for <usuario>@<ip> = PASSWORD('contrasea'); Permisos: grant <permisos> on <basedatos>.<tablas> to <usuario>@<ip> [identified by 'contrasea'] [with grant option]; revoke <permisos> on <basedatos>.<tablas> from <usuario>@<ip>
Backup (I)
Fsico:
Parar mysql o bloquear tablas (lock + flush) Copiar ficheros fsicos (tablas o bd) Problema tablas InnoDB
Backup (II)
Optimizacin
Disco: paralelizar con distribucin de datos CPU: procesar tablas pequeas Memoria: ancho de banda si cache pequea
MySQL Benchmark Suite: scripts en perl obtener estado servidor Explain: opcin para conocer el plan de ejecucin del optimizador de consultas Optimizacin rehaciendo consultas
Alta disponibilidad
MySQL Replication:
Sistema master-slaves Asncrono Escrituras slo en master Sistema de mltiples nodos con lectura/escritura Sncrono, replicacin inmediata Nodos conectados LAN
MySQL Cluster:
DRBD (Distributed Replicated Block Device): comparticin de dispositivos entre servidores linux
FIN
GRACIAS!