Как составить список всех таблиц в текущей базе данных, а также количество строк в таблице.
Другими словами, можете ли вы подумать о запросе, чтобы придумать что-то подобное в MySQL?
+------------------------++------------------------+
| Tables_in_database | Number of rows |
+------------------------++------------------------+
| database 1 | 1000 |
| database 2 | 1500 |
+------------------------++------------------------+
Различные подходы приветствуются.
Ответы:
У меня очень агрессивный подход с использованием грубой силы динамического SQL
Пример: в моей тестовой базе данных я получаю это
ДАЙТЕ ЭТО ПОПРОБУЙТЕ !!!
ПРЕДУПРЕЖДЕНИЕ: если все таблицы MyISAM, это произойдет очень быстро. Если все таблицы InnoDB, каждая таблица будет подсчитана. Это может быть жестоко и неумолимо для очень больших таблиц InnoDB.
источник
FROM information_schema.tables
наFROM show tables
. Можете ли вы объяснить, почему это не работает?SELECT DISTINCT table_schema FROM information_schema.tables
но не мог понять, как обернуть ваш запрос, чтобы выполнить эти результаты. Если я когда-нибудь выясню ответ, я отправлю сообщение на dba.stackexchange.com/q/201880/18098SELECT @CountSQL\G
Попробуйте ниже запрос без динамического запроса
источник
Может быть, этот запрос может быть полезным. Он показывает размер данных и количество записей.
источник
Получить точное количество строк для всех таблиц в MySQL с помощью сценария оболочки.
установить параметр в файле parameter.config как
Скрипт для подсчета:
сохраните это в файле "mysqlrowscount.sh", запустите этот скрипт с помощью команды:
источник