Я увеличиваю количество таблиц, которые у меня есть, и мне иногда бывает любопытно просто выполнить быстрый запрос командной строки, чтобы подсчитать количество таблиц в моей базе данных. Это возможно? Если да, то каков запрос?
Я пробовал два вышеупомянутых метода, и количество таблиц, которые вернулись, когда я использовал, FOUND_ROWS()было больше, чем количество таблиц, которые вернулись, когда я использовал первый метод.
Amr
это также учитывает просмотры, если вам нужны только таблицы, добавьтеAND table_type = 'BASE TABLE'
Thomasleveil
Замечание о use databasename;команде. Если база данных действительно большая, команда может выполняться с длительным временем ожидания. В этом случае вход в систему должен быть выполнен с опцией -A, то есть:, mysql -uroot -p -Aи команда будет работать быстро.
azurecorn
24
Если вы хотите подсчитать все базы данных плюс сводку, попробуйте следующее:
SELECT IFNULL(table_schema,'Total')"Database",TableCount
FROM(SELECT COUNT(1) TableCount,table_schema
FROM information_schema.tables
WHERE table_schema NOTIN('information_schema','mysql')GROUPBY table_schema WITH ROLLUP) A;
Почему в FROMпредложении используется подзапрос ? Почему не просто так SELECT IFNULL(table_schema, 'Total') Database, COUNT(*) TableCount FROM information_schema.tables WHERE table_schema NOT IN ('information_schema','mysql') GROUP BY table_schema WITH ROLLUP?
eggyal
10
SELECT COUNT(*)FROM information_schema.tables WHERE table_schema ='dbo'and TABLE_TYPE='BASE TABLE'
Это довольно очевидно для тех, кто знаком с этим запросом, но для тех, кто не знаком, небольшое объяснение было бы отличным дополнением к этому ответу.
FOUND_ROWS()
было больше, чем количество таблиц, которые вернулись, когда я использовал первый метод.AND table_type = 'BASE TABLE'
use databasename;
команде. Если база данных действительно большая, команда может выполняться с длительным временем ожидания. В этом случае вход в систему должен быть выполнен с опцией -A, то есть:,mysql -uroot -p -A
и команда будет работать быстро.Если вы хотите подсчитать все базы данных плюс сводку, попробуйте следующее:
Вот пример выполнения:
Попробуйте !!!
источник
FROM
предложении используется подзапрос ? Почему не просто такSELECT IFNULL(table_schema, 'Total') Database, COUNT(*) TableCount FROM information_schema.tables WHERE table_schema NOT IN ('information_schema','mysql') GROUP BY table_schema WITH ROLLUP
?источник
Это даст вам имена и количество таблиц всех баз данных в вашем mysql
источник
Чтобы подсчитать количество столов, просто сделайте это:
Иногда легкие вещи сделают работу.
источник
источник
Существует несколько способов подсчета таблиц базы данных. Мне больше всего нравится это:
источник
источник
из командной строки:
в приведенном выше примере root - это имя пользователя и пароль, размещенные на localhost.
источник
источник
он покажет названия таблиц, а затем количество таблиц.
источник
источник
Надеюсь, это поможет и вернет только количество таблиц в базе данных.
источник
sys.tables
не существует вmysql