832 Stimmen

Wie kann man die Größe einer Mysql-Datenbank ermitteln?

Wie kann man die Größe einer Mysql-Datenbank ermitteln?
Angenommen, die Zieldatenbank heißt "v3".

0 Stimmen

Für spezifische Tabellen / spezifische Datenbankgrößen hilft das hier bereitgestellte Skript. Die Informationen werden aus der Tabelle information_schema.tables berechnet, siehe die ausführliche Antwort hier rathishkumar.in/2017/12/

24voto

Jörg Asmussen Punkte 77

Wenn Sie die Liste aller Datenbankgrößen sortiert haben möchten, können Sie :

SELECT * 
FROM   (SELECT table_schema AS `DB Name`, 
           ROUND(SUM(data_length + index_length) / 1024 / 1024, 1) AS `DB Size in MB`
        FROM   information_schema.tables 
        GROUP  BY `DB Name`) AS tmp_table 
ORDER  BY `DB Size in MB` DESC;

21voto

Rick James Punkte 120626
mysqldiskusage  --server=root:MyPassword@localhost  pics

+----------+----------------+
| db_name  |         total  |
+----------+----------------+
| pics     | 1,179,131,029  |
+----------+----------------+

Falls nicht installiert, kann dies durch die Installation der mysql-utils Paket, das von den meisten größeren Distributionen mitgeliefert werden sollte.

19voto

Hiren Parghi Punkte 1755

Melden Sie sich zunächst bei MySQL mit

mysql -u username -p

Befehl zum Anzeigen der Größe einer einzelnen Datenbank zusammen mit ihrer Tabelle in MB.

SELECT table_name AS "Table",
ROUND(((data_length + index_length) / 1024 / 1024), 2) AS "Size (MB)"
FROM information_schema.TABLES
WHERE table_schema = "database_name"
ORDER BY (data_length + index_length) DESC;

Ändern Sie database_name in Ihre Datenbank

Befehl zum Anzeigen aller Datenbanken mit ihren Größe in MB.

SELECT table_schema AS "Database", 
ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS "Size (MB)" 
FROM information_schema.TABLES 
GROUP BY table_schema;

6voto

Evan Haston Punkte 65

Gehen Sie in das mysql-Datenverzeichnis und führen Sie du -h --max-depth=1 | grep databasename

2voto

Wasid Hossain Punkte 35

Darüber hinaus: Wenn jemand die Größe einer einzelnen Tabelle ermitteln möchte, verwenden Sie bitte die folgenden Codes:

SELECT
  TABLE_NAME AS `Table Name`,
  ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Size ( in MB)`
FROM
  information_schema.TABLES
WHERE
    TABLE_SCHEMA = "your_db_name"
  AND
    TABLE_NAME = "your_single_table_name"
ORDER BY
  (DATA_LENGTH + INDEX_LENGTH)
DESC;

Hinweis: Es werden nicht die Bruchzahlen für die Verwendung der ROUND() Methode.

Ich hoffe, dies wird vielen von uns helfen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X