ShareThis

Mostrando entradas con la etiqueta script. Mostrar todas las entradas
Mostrando entradas con la etiqueta script. Mostrar todas las entradas

martes, 21 de septiembre de 2010

Exportar resultado de consulta en MySQL

En caso de que tenga información en una base de datos MySQL y no cuente con un cliente grafico o phpMyAdmin para exportar los resultados de una consulta, puede utilizar la opción SELECT .... INTO OUTFILE.

Este es un ejemplo que produce un archivo en formato CSV (tomado de la documentación de MySQL)


SELECT a,b,a+b INTO OUTFILE '/tmp/result.txt'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM test_table;


Referencia
*Documentación Sentencia Select - MySQL

viernes, 19 de marzo de 2010

Convertir archivo de iso-8859-1 a utf-8

Para convertir un archivo de set de caracteres iso-8859-1 a utf-8 puede utilizar herramientas de linea de comando en Linux.


iconv --from-code=ISO-8859-1 --to-code=UTF-8 iso.txt > utf.txt

miércoles, 28 de octubre de 2009

mtop: monitoreo de carga en MySQL


Recientemente he tenido la necesidad de monitorear en tiempo real el desempeño de una base de datos MySQL. Si bien hasta el momento he utilizado top y mysqladmin la información que obtenía allí era fragmentada y en ocasiones difícil de correlacionar (como consultas lentas, asi como nivel de utilizacion del Query Cache).

Un comando que indica procesos en ejecución en mySQL es el siguiente:
mysqladmin -u processlist -p

Sin embargo, revisando en Internet me encontré con una utilidad denominada mtop que simplifica de gran manera esta labor.

Luego de descargar el archivo .tar.gz se debe proceder a validar las dependencias. En el archivo README se indica lo siguiente:


mtop requires the following perl modules:

Module Available At
------------ --------------------------------------------------------
Curses http://www.cpan.org/authors/id/WPS
DBI Distributed as Bundle::DBI: http://www.cpan.org/authors/id/TIMB
DBD::mysql http://www.cpan.org/authors/id/JWIED
Getopt::Long (Distributed with Perl 5)
Net::Domain Part of libnet: http://www.cpan.org/authors/id/GBARR/

Send bugs/comments to Marc Prewitt


Por tanto, verifique que tenga instalados los paquetes ncurses, ncurses-devel y perl-Curses (Disponible en http://dag.wieers.com/rpm/packages/perl-Curses/)

El proceso de instalación es el siguiente:


perl Makefile.PL
make
make install



Una vez instalado puede ejecutarlo con el comando mtop. Te recomiendo revisar el total de threads, y el numero de estos activos en ejecución en un momento dado: Ej. 37 threads: 1 running.

Elementos de monitoreo

* Habilitar el Slow Query Log: loguea todas las consultas que se excedan de un tiempo dado (log_query_time) o bien, que no utilicen índices (log-queries-not-using-indexes). Para activarlo, se debe editar el archivo my.cnf (habitualmente localizado en la ruta raiz /etc) y agregar en la sección [mysqld] las siguientes directivas:


long_query_time = 1
log-slow-queries = /var/log/mysql/mysql-slow.log
log-queries-not-using-indexes


Se puede revisar en el log de consultas lentas cuales consultas estan tomando tiempo excesivo como punto de inicio para atacar un problema de desempeño.

* Analizar mediante el comando EXPLAIN, el plan de ejecución para una consulta especifica. Este comando permite determinar si se utilizan índices, el número de filas exploradas e información adicional.


EXPLAIN {CONSULTA SQL}




Revisa tambien algunos ejemplos de consultas avanzadas para MySQL







Si su servicio está sobre Amazon Relational Database Service RDS, la siguiente nota puede ser de utilidad para hacer tuning de RDS.
Otros artículos de Interés
*http://www.maxglaser.net/como-mejorar-y-monitorear-el-rendimiento-de-mysql/
*http://www.mysqlperformanceblog.com/
*http://dev.mysql.com/tech-resources/presentations/presentation-oscon2000-20000719/index.html