Je remarque que lorsque PHPMYADMIN ouvre une DB, cela montre immédiatement si une table s'est écrasée ou non. Il me semble donc que phpmyadmin n'est pas en cours d'exécution d'un Quelqu'un peut-il savoir ce qu'il fait pour obtenir cet informait si rapidement et efficacement? P> Table de contrôle code> ou Analyse Tableau code>. P>
5 Réponses :
Je parie que
SHOW TABLE STATUS FROM `db`
Il peut y avoir des situations où cela est utile, mais pas dans le mien. Afficher le statut de la table code> ne donne aucune différence de statut des tables que j'ai corrompues.
@ MC0e, non seulement cela ne montre pas que cela n'a pas écrasé tout le temps - une table n'est pas marqué comme écrasé jusqu'à ce qu'il soit utilisé i>. Donc, obtenir le statut sur une table qui n'a pas été lu / écrit ne donnera rien. Si vous subissez un événement qui provoque des tables bloquées, la meilleure chose à faire est de faire une réparation sur chacune d'elles au lieu d'attendre qu'ils vous disent qu'ils sont écrasés. Donc, cette réponse acceptée est incorrecte b>
L'OP a demandé comment PHPMYADMIN a obtenu le statut de table si rapidement. Cette réponse est donc très probablement correcte (bien que non fondée, et exprimée comme une supposition). La réponse pourrait cependant être considérablement améliorée avec des informations du commentaire de @Dev_Null.
Si vous avez un accès au shell, l'utilitaire mysqlanalyze code> pourrait aider. mysqlanalyze dbname
show table status where comment like '%crash%';
J'aime ça mieux que la réponse acceptée, car ce n'est pas apparent dans la réponse acceptée que vous pouvez facilement utiliser comme dans le contexte d'une déclaration de spectacle. (Aussi, je préfère le commentaire! = "".)
La manière la plus efficace que j'ai trouvée est d'utiliser la ligne de commande Ceci accédera à voir https://dev.mysql.com/doc/refman /5.7/fr/mysqlcheck.html P>
Remarque: Ce n'est pas la manière dont PHPMYADMIN le fait, ce n'est donc pas strictement une réponse à la question initiale, mais je le mettez ici, car Google envoie des recherches sur mysqlcheck code> outil: p>
mysqlcheck -u mydbuser -p mydbname
code> p>
myDBName code> à l'aide de l'utilisateur myDBuser code> et invite le mot de passe de ce utilisateur. Il vérifiera ensuite chaque table dans la base de données spécifiée. P>
MySQL Show Des tables bloquées code> ici. p>
La bonne façon de vérifier une table est afin de vérifier la barre de table dans la base de données FOO P> mysqlcheck FOO BAR