隨筆編號-16 MySQL查看表及索引大小方法


目標:阿里雲OS數據庫DMS,單個主庫最大存儲空間為2T.最近公司業務擴展很快,一天數據量達到7.9G左右。要求備份清理歷史數據,備份到其他磁盤。

准備:

如果想知道MySQL數據庫中每個表占用的空間、表記錄的行數的話,可以打開MySQL的 information_schema 數據庫。在該庫中有一個 TABLES 表,這個表主要字段分別是:

TABLE_SCHEMA : 數據庫名
TABLE_NAME:表名
ENGINE:所使用的存儲引擎
TABLES_ROWS:記錄數
DATA_LENGTH:數據大小
INDEX_LENGTH:索引大小

其他字段請參考MySQL的手冊,我們只需要了解這幾個就足夠了。

1  首先查看某一實例下的所有占用磁盤空間(表數據+索引數據,得到的結果為B,這里做了數據處理轉成M):

select concat(round((sum(DATA_LENGTH)+sum(INDEX_LENGTH))/1024/1024,2),'M') from information_schema.tables where table_schema='實例名稱';

 上面是查詢所有的表計的累計量,下面是是查詢單個表計的的SQL(按照實例名查詢):

select table_name,
DATA_LENGTH/1024/1024 as tablesData,
INDEX_LENGTH/1024/1024 as indexData 
from information_schema.tables
where table_schema='dsm'
ORDER BY  tablesData desc;

 


免責聲明!

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



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