So listen Sie alle Tabellen in der aktuellen Datenbank zusammen mit der Anzahl der Zeilen der Tabelle auf.
Mit anderen Worten, können Sie sich eine Abfrage vorstellen, um so etwas in MySQL zu finden?
+------------------------++------------------------+
| Tables_in_database | Number of rows |
+------------------------++------------------------+
| database 1 | 1000 |
| database 2 | 1500 |
+------------------------++------------------------+
Unterschiedliche Ansätze sind willkommen.
Antworten:
Ich habe einen sehr aggressiven Ansatz mit Brute Force Dynamic SQL
Beispiel: In meiner Testdatenbank erhalte ich dies
VERSUCHE ES !!!
CAVEAT: Wenn alle Tabellen MyISAM sind, geschieht dies sehr schnell. Wenn alle Tabellen InnoDB sind, wird jede Tabelle gezählt. Dies kann für sehr große InnoDB-Tabellen brutal und unerbittlich sein.
quelle
FROM information_schema.tables
durch zu ersetzenFROM show tables
. Können Sie erklären, warum das nicht funktioniert?SELECT DISTINCT table_schema FROM information_schema.tables
, konnte jedoch nicht herausfinden, wie Sie Ihre Abfrage umbrechen, um diese Ergebnisse zu verarbeiten. Wenn ich jemals die Antwort herausfinde, werde ich sie unter dba.stackexchange.com/q/201880/18098SELECT @CountSQL\G
Versuchen Sie die folgende Abfrage ohne dynamische Abfrage
quelle
Vielleicht kann diese Abfrage hilfreich sein. Es zeigt die Datengröße und Anzahl der Datensätze.
quelle
Erhalten Sie mithilfe des Shell-Skripts genaue Zeilenzahlen für alle Tabellen in MySQL.
Setzen Sie den Parameter in der Datei parameter.config als
Das zu zählende Skript lautet:
Speichern Sie dies in der Datei "mysqlrowscount.sh". Führen Sie dieses Skript mit dem folgenden Befehl aus:
quelle