Ver tablas abiertas en MySQL

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.

SHOW OPEN TABLES, además, se puede convertir en una útil herramienta para optimizaciones. Con un script simple que se ejecute cada minutos es posible obtener estadísticas en “tiempo real” de las tablas que están bloqueadas y así determinar candidatas para cambiar el motor de almacenamiento u otras optimizaciones. Hasta inclusive puede ser mejor herramienta al slow-log.

Desafortunadamente esta sentencia no es la panacea, pues no nos ayuda en una situación de bloqueo de una tabla, pues no responde quien es que está bloqueando la tabla. De todas formas su labor es más que suficiente, por lo tanto este aspecto no sería correcto considerarlo como un punto debil.

Vía: MySQL Performance Blog

Tags: , , ,


Leave a Reply

Your email address will not be published. Required fields are marked *