MYSQL ROW_FORMAT ändern für alle Tabellen einer Datenbank

Mit diesem kleinen Skript kann man die ROW_FORMAT von allen Tabellen einer Datenbank ändern.
Zum Beispiel, wenn man dieTabellen von DYNAMIC auf COMPRESSED ändern möchte.
Ich bevorzuge COMPRESSED, vor allem bei großen Tabellen, weil das Dekomprimieren bzw. das  Komprimieren meist weniger CPU Zeit kostet, als Zeit für I/O am Filesystem verloren geht.

Voraussetzung ist, das man “mysql” in der Befehlszeile ohne Passwort ausführen kann!

#!/bin/bash 
# Name der Datenbank anstatt "dbname" einsetzen. DBNAME=dbname  # Raute dort entfernen, was man möchte. #ROW_FORMAT=DYNAMIC ROW_FORMAT=COMPRESSED  TABS=$(echo SHOW TABLES | mysql -s $DBNAME)  for a in $TABS ; do     echo "ALTER TABLE $a ROW_FORMAT=$ROW_FORMAT;"     mysql $DBNAME -e "ALTER TABLE $a ROW_FORMAT=$ROW_FORMAT;" done

Eine Übersicht alle Row Format’s findet man in der MySQL Doku.

Kommentar verfassen

Christian Hummel