Datenbanken rechnen gerne und sind dabei effizient, MySQL ist da keine Ausnahme.
Wäre es nicht interessant, in der Bash auf die Schnelle eine Liste aller (lokalen) Datenbanken incl. ihrer Größe zu bekommen, in MB, ordentlich gerundet und zwar
ohne die interaktive MySQL Shell zu öffnen?
Na klar!
mysql -u root -pPasswort -e 'select table_schema,round(sum(data_length+index_length)/1024/1024,4) from information_schema.tables group by table_schema;'
Etwas sprechendere Tabellenheader wären auch nicht schlecht:
mysql -u root -pPasswort -e 'select table_schema "Database",round(sum(data_length+index_length)/1024/1024,4) "Size (MB)" from information_schema.tables group by table_schema;'
Das Ergebnis schaut dann ungefähr so aus:
+--------------------+-----------+
| Database | Size (MB) |
+--------------------+-----------+
| copper | 0.0491 |
| gallery2 | 0.1633 |
| information_schema | 0.0039 |
| joomla | 0.6255 |
| mysql | 0.2599 |
| redaxo | 0.0715 |
| wiki | 2.5833 |
| wordpress | 0.3367 |
| xoops | 0.3042 |
+--------------------+-----------+
Oder die Größe einer bestimmten Datenbank (hier "wiki"), diesmal ohne Tabellenheader:
mysql -u root -pPasswort -N -e 'select round(sum(data_length+index_length)/1024/1024,4) from information_schema.tables where table_schema="wiki";'
Ergebnis:
+--------+
| 2.5833 |
+--------+
Voraussetzung: mindestens MySQL 5.0.irgendwas (2?).
Damit ließe sich z.B. die Größe einer Datenbank automatisiert überwachen.
Aufgenommen: Okt 26, 12:19
Mit folgendem Befehl kann man sich schnell und einfach die Größe in MB aller vorhandenen MySQL-Datenbanken anzeigen lassen. Praktisch wenn der Dumb länger läuft als erwartet und kein PHPMyAdmin o.ä. zur Hand ist. mysql -u root -p -e 'select table_...
Aufgenommen: Okt 26, 12:20