Un comando que poca gente sabe que existe es el comando SHOW OPEN TABLES. Éste permite examinar las tablas que tienes abiertas de una base de datos.
Ejemplo:
SHOW OPEN TABLES FROM test;
Donde “test” es el nombre de la base de datos. Las columnas devueltas, además del nombre de la tabla, son:
Gracias a esta sentencia también, podemos averigüar que tablas están en la “table_cache”, especialmente para saber si hay actividad en una tabla dada. Simplemente ejecutando “FLUSH TABLE mi_tabla” y examinando luego las tablas abiertas podemos saber si “mi_tabla” está siendo utilizada.
Como parte de una rutina de backup, en vez de ejecutar FLUSH TABLES en todas las tablas, puedes correr SHOW OPEN TABLES y luego ejecutar el “flush” solo sobre las tablas abiertas.
Generalmente, a los fines de tests o benchmarks requerimos de tablas llenas de registros, cuyo número anda en el orden de varios millones.
Para llenar un tabla de forma rápida en tan solo unas pocas repeticiones de unas instrucciones SQL, nada mejor que buscar lograr un crecimiento exponencialmente de la misma.
A continuación, te mostramos una forma muy sencilla, como bien pensada, de lograr esto haciendo uso del INSERT INTO …. SELECT. El ejemplo está desarrollado en MySQL, pero se puede adaptar a cualquier otro dialecto de SQL de otros motores bases de datos.
(más…)
Tiempo atrás ya habiamos configurado la replicación en MySQL y también hemos visto algun script para realizar backups con mysqldump. Ahora, realizar un backup con la replicación ejecutándose nos traería una pequeña modificación en nuestro script de backup, pues sería conveniente detener temporalmente la replicación e inicializandola nuevamente luego de haber realizado el backup.
Y el gran día llegó! Hoy, leyendo entre mis feeds me entero de una muy buena noticia, la versión GA de MySQL 5.1.
Finalmente, luego de bastante tiempo MySQL 5.1 llega al fin de su fase RS (Release Candidate) para convertirse en GA (Generally Available).
Esto significa, que la compañía te garantiza que le versión alcanzó el grado de madurez suficiente para utilizarse en sistemas en producción.
Hasta ahora no había publicado nada acerca de transacciones en MySQL, pues es mucho lo que se podría hablar del tema y son muchos los ejemplos que se podrían desarrollar para entender el alcance del tópico. Sin embargo, en el afán de hacer una publicación mounstrosa, no termino haciendo nada. Por ese motivo, me limitaré a hablar algunos aspectos del tema y a realizar algunos ejemplos básicos en varias entregas. Para esta primera publicación, me enfocaré en la confirmación de transacciones.
Desde hace algo más de diez días, el equipo de desarrollo de MySQL Workbench publicó la primera versión de MySQL Workbench 5.1 para Linux en su blog (ver MySQL Workbench 5.1 Alpha for Linux available).
Desde hace tiempo, MySQL Workbench ha mostrado signos de vida y una constante evolución (aunque aún le queda largo camino por recorrer), pero lamentablemente esa evolución solo podía ser disfrutada desde Windows.
Finalmente, luego de una larga espera, MySQL ha publicado MySQL Workbench 5.1 para Linux, aunque aún en su versión Alpha.
A continuación, pongo a vuestra disposición un catálogo de Consultas SQL comunes escritas para MySQL:
Una de las grandes novedades en MySQL 5.1 es el destino de los logs, el log general y log de consultas lentas.
Hasta MySQL 5.0.x los logs eran almacenados en archivos planos, pero a partir de la versión 5.1.6 los mismos pueden ser escritos a archivos, a tablas del esquema mysql (general_log y slow_log) o en ambos destinos.
Para las nuevas instalaciones de MySQL 5.1.6 o posterior, en el mismo proceso de instalación se crean las tablas de logs junto al resto de las tablas del sistema. En cambio, si actualizas MySQL desde una versión anterior, deberás actualizar las tablas del sistema con mysql_upgrade.
Si bien disponer de información de logs en tablas, en vez de archivos, puede hacer más fácil su seguimiento, así como el desarrollo de aplicaciones que utilicen esa información, pero también debemos entender y aceptar que esto se llevará parte del rendimiento del motor de base de datos.
En esta publicación, veremos el uso de la aplicación de línea de comandos mysqlshow para ver las bases de datos, tablas, columnas e información de índices de una base de datos MySQL mediante nueve ejemplos.
Los parámetros comunes, para cada uno de los ejemplos, serán:
Para el caso de la contraseña, puedes ingresar la contraseña inmediatamente después del -p (muy util para cuando utilizamos mysqlshow dentro de un script) o bien, solamente -p, donde se nos solicitará luego la contraseña.
En nuestros ejemplo, no especificaremos el host, suponemos que ejecutamos mysqlshow en el mismo servidor. No ingresaremos la constraseña luego del parámetro -p, sino que esperaremos a que nos la solicite.
Debian/Ubuntu Tips&Tricks nos sugiere dos tips para mejorar el tiempo de respuesta de MySQL, basado en un caso propio.
Muchas veces, a pesar de que el sistema operativo se encuentre con una carga de trabajo normal, MySQL puede mostrarse algo lento.
Hay muchas formas para mejorar el tiempo de respuesta del servidor MySQL, aquí nos enfocaremos en dos formas: