Mysql查詢庫、表存儲量(Size)


 Mysql查詢庫、表存儲量(Size) 

 

1、要查詢表所占的容量,就是把表的數據和索引加起來就可以了。

SELECT SUM(DATA_LENGTH) + SUM(INDEX_LENGTH) FROM information_schema.tables WHERE table_schema='table_name';

2、查詢所有的數據大小

SELECT CONCAT(ROUND(SUM(DATA_LENGTH/1024/1024), 2), 'M') FROM tables;

3、查詢某個表的數據 

SELECT CONCAT(ROUND(SUM(DATA_LENGTH/1024/1024),2),'M')
FROM 
tables WHERE table_schema='database_name' AND table_name='table_name';

----- 注:獲取結果是字節單位,轉換為M單位。

 

mysql中information_schema數據庫,存儲數據庫元數據,包括數據庫信息、數據庫中表的信息等。

  • schemata表:這個表里面主要是存儲在mysql中的所有的數據庫的信息
  • tables表:這個表里存儲了所有數據庫中的表的信息,包括每個表有多少個列等信息。
  • columns表:這個表存儲了所有表中的表字段信息。
  • statistics表:存儲了表中索引的信息。
  • user_privileges表:存儲了用戶的權限信息。
  • schema_privileges表:存儲了數據庫權限。
  • table_privileges表:存儲了表的權限。
  • column_privileges表:存儲了列的權限信息。
  • character_sets表:存儲了mysql可以用的字符集的信息。
  • collations表:提供各個字符集的對照信息。
  • collation_character_set_applicability表:相當於collations表和character_sets表的前兩個字段的一個對比,記錄了字符集之間的對照信息。
  • table_constraints表:這個表主要是用於記錄表的描述存在約束的表和約束類型。
  • key_column_usage表:記錄具有約束的列。
  • routines表:記錄了存儲過程和函數的信息,不包含自定義的過程或函數信息。
  • views表:記錄了視圖信息,需要有show view權限。
  • triggers表:存儲了觸發器的信息,需要有super權限。

 

1.查看所有數據庫容量大小

select
table_schema as '數據庫',
sum(table_rows) as '記錄數',
sum(truncate(data_length/1024/1024, 2)) as '數據容量(MB)',
sum(truncate(index_length/1024/1024, 2)) as '索引容量(MB)'
from information_schema.tables
group by table_schema
order by sum(data_length) desc, sum(index_length) desc;

2.查看所有數據庫各表容量大小

select
table_schema as '數據庫',
table_name as '表名',
table_rows as '記錄數',
truncate(data_length/1024/1024, 2) as '數據容量(MB)',
truncate(index_length/1024/1024, 2) as '索引容量(MB)'
from information_schema.tables
order by data_length desc, index_length desc;

 3.查看指定數據庫容量大小

select
table_schema as '數據庫',
sum(table_rows) as '記錄數',
sum(truncate(data_length/1024/1024, 2)) as '數據容量(MB)',
sum(truncate(index_length/1024/1024, 2)) as '索引容量(MB)'
from information_schema.tables
where table_schema='mysql';

 

4.查看指定數據庫各表容量大小

select
table_schema as '數據庫',
table_name as '表名',
table_rows as '記錄數',
truncate(data_length/1024/1024, 2) as '數據容量(MB)',
truncate(index_length/1024/1024, 2) as '索引容量(MB)'
from information_schema.tables
where table_schema='mysql'
order by data_length desc, index_length desc;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM