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.