Como listar todas as tabelas no banco de dados atual, junto o número de linhas da tabela.
Em outras palavras, você pode pensar em uma consulta para criar algo assim no mysql?
+------------------------++------------------------+
| Tables_in_database | Number of rows |
+------------------------++------------------------+
| database 1 | 1000 |
| database 2 | 1500 |
+------------------------++------------------------+
Diferentes abordagens são bem-vindas.
Respostas:
Eu tenho uma abordagem muito agressiva usando força bruta Dynamic SQL
Exemplo: No meu banco de dados de teste, recebo este
DE UMA CHANCE !!!
CAVEAT: Se todas as tabelas forem MyISAM, isso acontecerá muito rápido. Se todas as tabelas forem InnoDB, cada tabela será contada. Isso pode ser brutal e implacável para tabelas InnoDB muito grandes.
fonte
FROM information_schema.tables
porFROM show tables
. Você pode explicar por que isso não funciona?SELECT DISTINCT table_schema FROM information_schema.tables
mas não consegui descobrir como agrupar sua consulta para executar esses resultados. Se algum dia eu descobrir a resposta, postarei em dba.stackexchange.com/q/201880/18098SELECT @CountSQL\G
Experimente a consulta abaixo sem consulta dinâmica
fonte
Talvez essa consulta possa ser útil. Mostra o tamanho dos dados e o número de registros.
fonte
Obtenha contagens de linha exatas para todas as tabelas no MySQL usando o shell script.
defina o parâmetro no arquivo parameter.config como
O script a contar é:
salve isso no arquivo "mysqlrowscount.sh", execute este script usando o comando:
fonte