Wie Du die Größe einer Datenbank und Tabelle in MySQL (SQL) ermittelst

Bei der täglichen Arbeit mit MySQL bzw. einem SQL Derivat kommt oft die Frage zur aktuellen Größe einer Datenbank-Tabelle oder der gesamten Datenbank auf.

Die Größe der gesamten Datenbank kann dabei mit einer Query recht einfach ermittelt werden.

Nachfolgendes SQL-Statement ermittelt die Größe eurer MySQL-Datenbank(en) und zeigt diese an bzw. gibt sie zurück.

Ermittlung der Größe sämtlicher Datenbanken:

SELECT table_schema, sum( data_length + index_length ) / 1024 / 1024 "Speicherbedarf (MB)" FROM information_schema.TABLES GROUP BY table_schema;

Ermittlung der Größe einer spezifischen Datenbanken (YOUR_DATABASE_NAME ersetzen):

SELECT CONCAT(sum(ROUND(((DATA_LENGTH + INDEX_LENGTH - DATA_FREE) / 1024 / 1024),2))," MB") AS Größe FROM INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA =  'YOUR_DATABASE_NAME';

 

Auch die Größe jeder einzelnen Tabellen einer Datenbank lässt sich auf die gleiche Art eicht ermitteln. Der Platzhalter „YOUR_DATABASE_NAME“ muss dabei durch den Namen der Datenbank ersetzt werden.

Ermittlung der Tabellengrößen einer Datenbank:

SELECT table_schema AS 'YOUR_DATABASE_NAME', table_name AS 'Tabelle',CONCAT(ROUND(((DATA_LENGTH + INDEX_LENGTH - DATA_FREE) / 1024 / 1024),2)," MB") AS Größe FROM INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA = 'YOUR_DATABASE_NAME';

bzw.

SELECT table_name AS "Table",
ROUND(((data_length + index_length) / 1024 / 1024), 2) AS "Größe (MB)"
FROM information_schema.TABLES
WHERE table_schema = "YOUR_DATABASE_NAME"
ORDER BY (data_length + index_length) DESC;

Über den Author

Stefan Pingel: Ist Gründer & Geschäftsführer der Agentur 404MEDIA. Er studierte Medieninformatik sowie Web Applications Development und betreut seit über 15 Jahren Unternehmen jeder Branche und Größe im Hinblick auf die Entwicklung webgestützter Anwendungssoftware, SEO, E-Commerce sowie Marketing.