В PHPMyAdmin вы можете увидеть использование пространства, просто нажав на таблицу.
АР.
Ответы на этот вопрос помогли мне найти решение. Тщательный поиск инструмента, который мог бы помочь мне без выполнения одного и того же запроса каждый раз для получения данных, заставил меня пройтись по MONyog , MySQL Enterprise Monitor , Percona toolkit . Все они дают подробную информацию о диске, но, в конце концов, выбрали MONyog для улучшения графических диаграмм и простого графического интерфейса.
Мэтью
Ответы:
285
Для стола mydb.mytable запустите это для:
БАЙТ
SELECT(data_length+index_length) tablesize
FROM information_schema.tables
WHERE table_schema='mydb'and table_name='mytable';
килобайт
SELECT(data_length+index_length)/power(1024,1) tablesize_kb
FROM information_schema.tables
WHERE table_schema='mydb'and table_name='mytable';
MEGABYTES
SELECT(data_length+index_length)/power(1024,2) tablesize_mb
FROM information_schema.tables
WHERE table_schema='mydb'and table_name='mytable';
GIGABYTES
SELECT(data_length+index_length)/power(1024,3) tablesize_gb
FROM information_schema.tables
WHERE table_schema='mydb'and table_name='mytable';
GENERIC
Вот общий запрос, где максимальная единица измерения - ТБ (Терабайт)
SELECT (data_length+index_length)/power(1024,2) tablesize_mb, table_name FROM information_schema.tables WHERE table_schema='mydb' order by tablesize_mb;чтобы получить список всех таблиц mydbс именем и размером, упорядоченные по размеру.
kqw
1
Добавьте «DESC» к предложению ORDER BY, чтобы увидеть таблицы, которые сначала занимают больше места на диске. ;)
mvsagar
Если быть точным, при использовании бинарных префиксов (умножение со степенью 2) вы можете вызывать единицы: ки би- байты (KiB), me би- байты (MiB) и ги- би- байты (GiB). Или, Вы можете использовать десятичные префиксы (умножение со степенью 1000), а затем вызывать единицы ki lo bytes (KB), me ga bytes (MB) и gi ga bytes (GB). Подробнее: en.wikipedia.org/wiki/Binary_prefix
Мартон Тамас
Кто-нибудь знает, как сделать то же самое в MSSQL?
Вопрос в том, как измерить пространство, занимаемое конкретной таблицей .
Flimm
@ShariqueAbdullah это сработает, если вы используете innodb_file_per_table, который не используется по умолчанию, но я думаю, что он очень распространен и / или рекомендован (кто-то может легко доказать, что я ошибаюсь, только мое впечатление).
Seaux
@ Seaux, может быть, но я не нашел, чтобы это использовалось ни в одной из рекомендуемых установок сервера, через которые я прошел. Таким образом, вы можете быть правы, но, поскольку это не по умолчанию, он может не найти его. Кроме того, я думаю, что функции innodb сильно отличаются от MyISAM. Таким образом, даже если у вас есть размер файла, он может быть не таким точным, как в случае с MyISAM. Но вы правы, что может быть одним из решений. Лично я предпочитаю использовать команды MySQL, чтобы получить эту информацию, а не измерять размеры файлов.
Шарик Абдулла
2
Основываясь на ответе RolandMySQLDBA, я думаю, что мы можем использовать вышеупомянутое, чтобы получить размер каждой схемы в таблице:
SELECT table_schema, SUM((data_length+index_length)/power(1024,1)) tablesize_kb
FROM information_schema.tables GROUPBY table_schema;
Возможно, вы могли бы посмотреть на размер файлов ...
Каждая таблица хранится в паре отдельных файлов в папке, которая называется как бы вы ни называли вашу базу данных. Эти папки хранятся в каталоге данных mysql.
Оттуда вы можете сделать 'du -sh. *', Чтобы получить размер таблицы на диске.
Вы можете проверить размер таблицы MySQL, посмотрев на phpMyAdminпанель управления, щелкнув имя базы данных в левом фрейме и считав размер таблиц в правом фрейме.
Приведенный ниже запрос также поможет получить ту же информацию в bytes
select SUM(data_length)+ SUM(index_length)as total_size
from information_schema.tables
where table_schema ='db_name'and table_name='table_name';
Ответы:
Для стола
mydb.mytable
запустите это для:БАЙТ
килобайт
MEGABYTES
GIGABYTES
GENERIC
Вот общий запрос, где максимальная единица измерения - ТБ (Терабайт)
Попробуйте!
источник
SELECT (data_length+index_length)/power(1024,2) tablesize_mb, table_name FROM information_schema.tables WHERE table_schema='mydb' order by tablesize_mb;
чтобы получить список всех таблицmydb
с именем и размером, упорядоченные по размеру.Быстрый SQL, чтобы получить 20 лучших таблиц в МБ.
Надеюсь, это кому-нибудь пригодится!
источник
Это не будет точным для таблиц InnoDB. Размер на диске больше, чем тот, который указан в запросе.
Пожалуйста, смотрите эту ссылку от Percona для получения дополнительной информации.
https://www.percona.com/blog/2008/12/16/how-much-space-does-empty-innodb-table-take/
источник
В Linux с MySQL установлен по умолчанию:
в зависимости от местоположения базы данных mysql в NIXCRAFT
источник
Основываясь на ответе RolandMySQLDBA, я думаю, что мы можем использовать вышеупомянутое, чтобы получить размер каждой схемы в таблице:
Очень понравилось!
источник
Возможно, вы могли бы посмотреть на размер файлов ...
Каждая таблица хранится в паре отдельных файлов в папке, которая называется как бы вы ни называли вашу базу данных. Эти папки хранятся в каталоге данных mysql.
Оттуда вы можете сделать 'du -sh. *', Чтобы получить размер таблицы на диске.
источник
Взято из Как проверить, сколько дискового пространства использует моя база данных?
Приведенный ниже запрос также поможет получить ту же информацию в
bytes
источник
Я бы просто использовал инструмент « mysqldiskusage » следующим образом
источник