Mysql Optimise une table dans toutes les bases de données

Je vois dans le manuel mysqlcheck, Quelle est l'option pour --tables, qui remplace cette option de base de données, mais cela n'est pas très bien expliqué.

J'essaie de commencer mysqlcheck -o, Et je veux que cela optimise une table spécifique qui existe dans chaque base de données, mais uniquement dans cette table.

** Je pense que je n'étais pas assez clair

j'ai 250 bases de données chacune desquelles contient une table api_log. Je veux exécuter une commande qui optimise seulement la table api_log, Mais pour chaque base de données sur le serveur mysql.

Par exemple:

mysqlcheck -o --tables api_log -A

De toute évidence, ce fragment particulier ne fonctionnera pas, mais il exprime ce que j'aimerais réaliser. Je ne veux pas optimiser chaque table dans chaque base de données, une seule table existante dans tout 250 Bases de données.
Invité:

Blanche

Confirmation de:

Vous pouvez optimiser une table comme suit:

mysqlcheck -u root -o Namebase_name_table

Par exemple, cela optimise la table user Base de données mysql.

$ mysqlcheck -u root -o mysql user 
mysql.user OK

Éditer

Au cas où vous auriez des centaines de bases de données; Vous pouvez écrire cette procédure comme

table_name='api_log'
mysql -NB -u root -e 'show databases' | while read db_name
do
if mysql -NB -u root "$db_name" -e 'show tables' | egrep -wq "$table_name"; then
echo "Optimizing $db_name.$table_name"
mysqlcheck -u root -o "$db_name" "$table_name"
fi
done

qui interagira avec toutes les bases de données et vérifier si une table a un nom appelé nom «api_log», Si c'est le cas, optimise-le.

Pour répondre aux questions, connectez-vous ou registre