Hallo
ich habe in meiner MySQL Datenbank 110 Tabellen, gibt es eine Möglichkeit alle Datensätze zu zählen und mir ausgeben zu lassen? Würde mich mal interessieren wie viel Inhalt die Datenbank hat.
Für eine Abschätzung der Anzahl der Datensätze sollte Folgendes reichen:
SELECT
SUM(TABLE_ROWS)
FROM
INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'deine Datenbank';
Je nach dem, welche Storage Engine verwendet wird (etwa bei InnoDB), ist das vielleicht nicht die exakte Anzahl der Datensätze sondern nur eine Schätzung. Wenn dir das genügt, gut. Sonst müsstest du wohl etwas umständlicher mit COUNT
zählen.
EDIT: Rolf hat natürlich Recht, dass die Anzahl der Datensätze allein wenig Aussagekraft besitzt, wenn es um den Speicherverbauch deiner Datenbank geht.
SELECT
TABLE_NAME,
ROUND(((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024), 2) AS 'Size in MB'
FROM
INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'deine Datenbank';
Diese Abfrage gibt dir die Größe der einzelnen Tabellen. Beachte, dass DATA_LENGTH
und INDEX_LENGTH
in Bytes vorliegen. Das willst du wahrscheinlich umrechnen. Wenn du nur an der Größe der gesamten Datenbank interessiert bist, kannst du die Einträge wie im folgenden Beispiel aufsummieren.
SELECT
SUM(ROUND(((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024), 2)) AS 'Size in MB'
FROM
INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'deine Datenbank';
Viele Grüße,
Orlok