Jak wyświetlić wszystkie tabele w bieżącej bazie danych wraz z liczbą wierszy tabeli.
Innymi słowy, czy możesz pomyśleć o zapytaniu, które mogłoby wymyślić coś takiego w mysql?
+------------------------++------------------------+
| Tables_in_database | Number of rows |
+------------------------++------------------------+
| database 1 | 1000 |
| database 2 | 1500 |
+------------------------++------------------------+
Mile widziane są różne podejścia.
Odpowiedzi:
Mam bardzo agresywne podejście, używając dynamicznego SQL Brute Force
Przykład: dostaję to w mojej testowej bazie danych
SPRÓBUJ !!!
CAVEAT: Jeśli wszystkie tabele są MyISAM, stanie się to bardzo szybko. Jeśli wszystkie tabele są InnoDB, każda tabela zostanie policzona. Może to być brutalne i nieubłagane w przypadku bardzo dużych tabel InnoDB.
źródło
FROM information_schema.tables
przezFROM show tables
. Czy możesz wyjaśnić, dlaczego to nie działa?SELECT DISTINCT table_schema FROM information_schema.tables
ale nie mogłem wymyślić, jak zawinąć zapytanie, aby uruchomić te wyniki. Jeśli kiedykolwiek wymyślęSELECT @CountSQL\G
Wypróbuj poniższe zapytanie bez zapytania dynamicznego
źródło
Może to zapytanie może być pomocne. Pokazuje rozmiar danych i liczbę rekordów.
źródło
Uzyskaj dokładne liczby wierszy dla wszystkich tabel w MySQL za pomocą skryptu powłoki.
ustaw parametr w pliku parameter.config jako
Skrypt do policzenia to:
zapisz to w pliku „mysqlrowscount.sh”, uruchom ten skrypt za pomocą polecenia:
źródło