2012-02-02 15 views
6

Observé que cuando phpMyAdmin abre un DB, muestra inmediatamente si una tabla se ha bloqueado o no. Por lo tanto, me parece que phpMyAdmin no está ejecutando un CHECK TABLE o ANALYZE TABLE.Comprobación de MySQL para la tabla bloqueada

¿Alguien sabe lo que hace para obtener esta información de manera rápida y eficiente?

Respuesta

5

apuesto a que

SHOW TABLE STATUS FROM `db` 

es lo que usted está buscando.

Eche un vistazo a this línea. Creo que si ENGINE es nulo (vacío), puede deberse a que la tabla se bloqueó

+0

Puede haber situaciones en las que esto sea útil, pero no en el mío. 'SHOW TABLE STATUS' no da ninguna diferencia en el estado de las tablas que he corrompido. – mc0e

3

Si tiene acceso de shell, la utilidad mysqlanalyze podría ayudar.

mysqlanalyze dbname 

Official Documentation

3
show table status where comment like '%crash%'; 
+0

Me gusta más esto que la respuesta aceptada, porque no es aparente en la respuesta aceptada que puede usar LIKE fácilmente en el contexto de una instrucción SHOW. (¡Además, prefiero COMMENT! = "".) – HoldOffHunger

0

La forma más eficiente que he encontrado es utilizar la herramienta de línea de comandos mysqlcheck:

mysqlcheck -u mydbuser -p mydbname

Este accederá a mydbname usando usuario mydbuser y la solicitud de que se contraseña del usuario Luego verificará cada tabla en la base de datos especificada.

Ver https://dev.mysql.com/doc/refman/5.7/en/mysqlcheck.html

Nota: no es así como phpMyAdmin lo hace, así que esto no es estrictamente una respuesta para la pregunta original, pero estoy poniendo esto aquí porque Google envía búsquedas de mysql show crashed tables aquí.

Cuestiones relacionadas