2016-04-07 2 views
1

Je lisais sur Stackoverflow que pour effacer overhead sur une table MyISAM, vous devez exécuter OPTIMIZE TABLE, dans le document de référence MySQL it ..Privilèges utilisateur pour OPTIMIZE TABLE

Notez que MySQL verrouille les table pendant le temps OPTIMIZE TABLE est en cours d'exécution.

Je me demandais est le LOCK TABLESPrivilege nécessaire pour OPTIMIZE TABLE? si oui, pourquoi?

Répondre

0

ne pas répondre à votre question particulière, mais de signaler les informations connexes ...

Mais ... OPTIMIZE TABLE, même pour les tables MyISAM, est rarement nécessaire. J'ai recherché des milliers de requêtes/tableaux lents, et j'ai vu seulement deux cas où OPTIMIZE TABLE était "la réponse". Et, après avoir creusé plus profondément, j'ai déduit que "une fois par mois" était suffisant pour ces deux cas. Ne perdez pas votre temps avec fréquentes, répandues, OPTIMIZEs.

Cette instruction va bloquer toutes les écritures dans la table. Et, ce faisant, il peut également bloquer les lectures. Alors, faites attention quand vous le faites.