Comment répertorier toutes les tables de la base de données actuelle, ainsi que le nombre de lignes de la table.
En d'autres termes, pouvez-vous penser à une requête pour trouver quelque chose comme ça dans mysql?
+------------------------++------------------------+
| Tables_in_database | Number of rows |
+------------------------++------------------------+
| database 1 | 1000 |
| database 2 | 1500 |
+------------------------++------------------------+
Différentes approches sont les bienvenues.
Réponses:
J'ai une approche très agressive en utilisant Dynamic Force Dynamic SQL
Exemple: dans ma base de données de test, j'obtiens ceci
ESSAIE !!!
CAVEAT: Si toutes les tables sont MyISAM, cela se produira très rapidement. Si toutes les tables sont InnoDB, chaque table sera comptée. Cela peut être brutal et implacable pour les très grandes tables InnoDB.
la source
FROM information_schema.tables
parFROM show tables
. Pouvez-vous expliquer pourquoi cela ne fonctionne pas?SELECT DISTINCT table_schema FROM information_schema.tables
mais je n'ai pas pu comprendre comment encapsuler votre requête pour parcourir ces résultats. Si jamais je trouve la réponse, je posteraiSELECT @CountSQL\G
Essayez la requête ci-dessous sans requête dynamique
la source
Peut-être que cette requête peut être utile. Il montre la taille des données et le nombre d'enregistrements.
la source
Obtenez le nombre exact de lignes pour toutes les tables dans MySQL à l'aide du script shell.
définir le paramètre dans le fichier parameter.config comme
Le script à compter est:
enregistrez-le dans le fichier "mysqlrowscount.sh", exécutez ce script en utilisant la commande:
la source