Está en la página 1de 30

Introduccin MySQL

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) ......

Estructura interna (I)

Estructura interna (II)

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

Estructura interna (III)

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

Estructura interna (IV)

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)

Estructura interna (V)

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

Estructura interna (VI)


mysql> show engines;
Engine InnoDB MRG_MYISAM BLACKHOLE CSV MEMORY FEDERATED ARCHIVE MyISAM Support YES YES YES YES YES NO YES DEFAULT Comment Supports transactions, row-level locking, and foreign keys Collection of identical MyISAM tables /dev/null storage engine (anything you write to it disappears) CSV storage engine Hash based, stored in memory, useful for temporary tables Federated MySQL storage engine Archive storage engine Default engine as of MySQL 3.23 with great performance Transactions yes no no no no null no no XA yes no no no no null no no Savepoints yes no no no no null no no

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

Tablespace: ibdata1 Log files: ib_logfile1, ib_logfile2

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.

Genricos unix/linux (paquete o tar) RPM MAC OS X Windows

Cdigo fuente: ms control (ej: localizacin) ms opciones

Inst. Unix/Linux (binarios+paquete)

Paquete:
apt-cache search mysql-common apt-cache showpkg mysql-common apt-get install mysql-common

Inst. Unix/Linux (binarios+tar) (I)

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

Inst. Unix/Linux (binarios+tar)(II)


shell> groupadd mysql shell> useradd -g mysql mysql shell> cd /usr/local shell> tar xvzf mysql-5.1.52-linux-i686-glibc23.tar.gz shell> ln -s mysql-5.1.52-linux-i686-glibc23.tar.gz mysql shell> cd mysql shell> chown -R mysql . shell> chgrp -R mysql . shell> scripts/mysql_install_db --user=mysql shell> chown -R root . shell> chown -R mysql data shell> cp /usr/local/mysql/support-files/my-small /etc/my.cnf shell> bin/mysqld_safe --user=mysql & shell> cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql shell> PATH=${PATH}:/usr/local/mysql/bin

Inst. Unix/Linux (cd. fuente)(I)


shell> groupadd mysql shell> useradd -g mysql mysql shell> cd /usr/local shell> tar zxvf mysql-5.1.53.tar.gz shell> cd mysql-5.1.53 shell> ./configure --prefix=/usr/local/mysqlf shell> make shell> make install shell> cd /usr/local/mysqlf shell> chown -R mysql . shell> chgrp -R mysql . shell> /bin/mysql_install_db --user=mysql --basedir=/usr/local/mysqlf --datadir=/usr/local/mysqlf/data shell> chown -R root . shell> chown -R mysql data shell> cp /usr/local/mysql/support-files/my-small /etc/my.cnf shell> bin/mysqld_safe --user=mysql & shell> cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

Inst. Unix/Linux (cd. fuente)(II)

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)

Lgico: obtener estructura + datos


Mysqldump: todo tipo de tablas Mysqlhotcopy: slo tablas MyISAM y Archive

Fsico:
Parar mysql o bloquear tablas (lock + flush) Copiar ficheros fsicos (tablas o bd) Problema tablas InnoDB

Backup (II)

Full: respaldo todos los datos


mysqldump (--single-transaction) Innodb hot backup

Incremental: slo cambios desde una fecha


Activar log binario (--log-bin) Recuperar full + incrementales (mysqlbinlog)

Optimizacin

Conocer qu hace el sistema y sus deficiencias:


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!

También podría gustarte