W PHPMyAdmin możesz zobaczyć użycie miejsca, klikając po prostu na tabeli.
AR.
Odpowiedzi na to pytanie pomogły mi znaleźć rozwiązanie. Dokładne poszukiwanie narzędzia, które mogłoby mi pomóc bez wykonywania za każdym razem tego samego zapytania w celu uzyskania danych, sprawiło, że przeszedłem przez MONyog , MySQL Enterprise Monitor , zestaw narzędzi Percona . Wszyscy podają szczegóły dotyczące informacji o dysku, ale ostatecznie wybrali MONyog, aby uzyskać lepsze wykresy graficzne i łatwy GUI.
Mathew
Odpowiedzi:
285
W przypadku tabeli mydb.mytableuruchom to dla:
BYTES
SELECT(data_length+index_length) tablesize
FROM information_schema.tables
WHERE table_schema='mydb'and table_name='mytable';
KILOBYTES
SELECT(data_length+index_length)/power(1024,1) tablesize_kb
FROM information_schema.tables
WHERE table_schema='mydb'and table_name='mytable';
MEGABYTY
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';
OGÓLNY
Oto ogólne zapytanie, w którym maksymalna wyświetlana jednostka to TB (terabajty)
SELECT (data_length+index_length)/power(1024,2) tablesize_mb, table_name FROM information_schema.tables WHERE table_schema='mydb' order by tablesize_mb;aby uzyskać listę wszystkich tabel o mydbnazwie i rozmiarze, uporządkowaną według rozmiaru.
kqw
1
Dołącz „DESC” do klauzuli ORDER BY, aby zobaczyć tabele, które w pierwszej kolejności zajmują więcej miejsca na dysku. ;)
mvsagar
Aby być precyzyjnym, możesz chcieć wywołać jednostki ki bi bajty (KiB), me bi bajty (MiB) i gi bi bajty (GiB), używając przedrostków binarnych (mnożenie z potęgą 2). Lub możesz użyć prefiksów dziesiętnych (mnożenie z potęgą 1000), a następnie wywołać jednostki ki lo bajty (KB), me ga bajty (MB) i gi ga bajty (GB). Zobacz więcej: en.wikipedia.org/wiki/Binary_prefix
Pytanie brzmi, jak zmierzyć przestrzeń zajmowaną przez konkretny stół .
Flimm
@ShariqueAbdullah to zadziała, jeśli używasz innodb_file_per_table, co nie jest domyślne, ale myślę, że jest bardzo powszechne i / lub zalecane (ktoś może łatwo udowodnić, że się mylę, tylko moje wrażenie).
Seaux,
@Seaux, może być, ale nie znalazłem go używanego w żadnej zalecanej konfiguracji serwera, przez którą przeszedłem. Więc możesz mieć rację, ale ponieważ nie jest to domyślne, może go nie znaleźć. Myślę też, że innodb działa zupełnie inaczej niż MyISAM. Więc nawet jeśli masz rozmiar pliku, może on nie być tak dokładny, jak w przypadku MyISAM. Ale masz rację, to może być jedno rozwiązanie. Osobiście wolę używać poleceń MySQL, aby uzyskać te informacje, zamiast mierzyć rozmiary plików.
Sharique Abdullah
2
Opierając się na odpowiedzi RolandMySQLDBA, myślę, że możemy wykorzystać powyższe, aby uzyskać rozmiar każdego schematu w tabeli:
SELECT table_schema, SUM((data_length+index_length)/power(1024,1)) tablesize_kb
FROM information_schema.tables GROUPBY table_schema;
Każda tabela jest przechowywana w kilku oddzielnych plikach w folderze o nazwie takiej, jaką nazwiesz w swojej bazie danych. Te foldery są przechowywane w katalogu danych mysql.
Stamtąd możesz wykonać 'du -sh. *', Aby uzyskać rozmiar tabeli na dysku.
Możesz sprawdzić rozmiar tabeli MySQL, patrząc na phpMyAdminpanel sterowania, klikając nazwę bazy danych w lewej ramce i odczytując rozmiar tabel w prawej ramce.
Poniższe zapytanie również pomoże uzyskać te same informacje 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';
Odpowiedzi:
W przypadku tabeli
mydb.mytable
uruchom to dla:BYTES
KILOBYTES
MEGABYTY
GIGABYTES
OGÓLNY
Oto ogólne zapytanie, w którym maksymalna wyświetlana jednostka to TB (terabajty)
Spróbuj !!!
źródło
SELECT (data_length+index_length)/power(1024,2) tablesize_mb, table_name FROM information_schema.tables WHERE table_schema='mydb' order by tablesize_mb;
aby uzyskać listę wszystkich tabel omydb
nazwie i rozmiarze, uporządkowaną według rozmiaru.Szybki bit SQL, aby uzyskać 20 największych tabel w MB.
Mam nadzieję, że to komuś się przyda!
źródło
To nie będzie dokładne w przypadku tabel InnoDB. Rozmiar na dysku jest w rzeczywistości większy niż podany w zapytaniu.
Więcej informacji można znaleźć pod linkiem firmy Percona.
https://www.percona.com/blog/2008/12/16/how-much-space-does-empty-innodb-table-take/
źródło
W Linuksie z domyślnie zainstalowanym mysql:
w oparciu o lokalizację bazy danych mysql firmy NIXCRAFT
źródło
Opierając się na odpowiedzi RolandMySQLDBA, myślę, że możemy wykorzystać powyższe, aby uzyskać rozmiar każdego schematu w tabeli:
Naprawdę mi się podobało!
źródło
Możesz przyjrzeć się rozmiarowi plików ...
Każda tabela jest przechowywana w kilku oddzielnych plikach w folderze o nazwie takiej, jaką nazwiesz w swojej bazie danych. Te foldery są przechowywane w katalogu danych mysql.
Stamtąd możesz wykonać 'du -sh. *', Aby uzyskać rozmiar tabeli na dysku.
źródło
Zaczerpnięte z Jak mogę sprawdzić, ile miejsca na dysku używa moja baza danych?
Poniższe zapytanie również pomoże uzyskać te same informacje
bytes
źródło
Po prostu użyłbym narzędzia „ mysqldiskusage ” w następujący sposób
źródło