•
SHOW OPEN TABLES de MySQL
Mediante SHOW OPEN TABLES podemos ver las tablas que están actualmente abiertas en la table cache y si esta en uso o si tiene threads a la espera a que otro libere el bloqueo.
Si ejecutamos simplemente SHOW OPEN TABLES veremos por todas las bases de datos las tablas que están abiertas y si están en uso mediante la columna In_use:
mysql> show open tables; +-------------+--------------------------------------------------------+--------+-------------+ | Database | Table | In_use | Name_locked | +-------------+--------------------------------------------------------+--------+-------------+ | xxxxxx_utf8 | tmp_systemadmin.es | 0 | 0 | (...)
La columna Name_locked se usa para ciertas operaciones como los DROPs. Para ver las tablas abiertas de una cierta base de datos deberemos indicar al SHOW un FROM con la base de datos. Por ejemplo:
mysql> show open tables from db1; +----------+-----------------------+--------+-------------+ | Database | Table | In_use | Name_locked | +----------+-----------------------+--------+-------------+ | db1 | temp | 0 | 0 | (...)
Además, podemos indicar una condición WHERE para indicar que únicamente queremos ver las que estén en uso o con threads en espera indicando que el valor de In_use no sea cero:
mysql> show open tables where In_use!=0; +-------------+-----------------------+--------+-------------+ | Database | Table | In_use | Name_locked | +-------------+-----------------------+--------+-------------+ | db1_utf8 | newsletter_zbl_config | 1 | 0 | +-------------+-----------------------+--------+-------------+ 1 row in set (0.00 sec) mysql> show open tables where In_use!=0; +-------------+---------------------+--------+-------------+ | Database | Table | In_use | Name_locked | +-------------+---------------------+--------+-------------+ | db1_utf8 | tabla1 | 2 | 0 | | db1_utf8 | tabla2 | 2 | 0 | | db1_utf8 | tabla3 | 3 | 0 | +-------------+---------------------+--------+-------------+ 3 rows in set (0.00 sec)
Relacionados
Imprimir
Deja un comentario: