Orlok: Alle Datensätze zählen

Beitrag lesen

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