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.
amish-geeks.de am : PingBack
Amish Geeks am : Wenn der MySQL-Dumb mal wieder länger dauert…