MySQL – Shell Script Optimize über alle Tabellen
Da es keinen Befehl gibt, wo man in allen Datenbanken gleich alle Tabellen optimieren kann, hier mal ein Script zum erleichtern …
#!/bin/bash
for db in $(echo "SHOW DATABASES;" | mysql -u$1 --password=$2 | grep -v -e "Database" -e "information_schema")
do
TABLES=$(echo "USE $db; SHOW TABLES;" | mysql -u$1 --password=$2 | grep -v Tables_in_)
echo "Switching to database $db"
for table in $TABLES
do
echo -n " * Optimizing table $table ... "
echo "USE $db; OPTIMIZE TABLE $table" | mysql -u$1 --password=$2 >/dev/null
echo "done."
done
done