MySQL數(shù)據(jù)庫實(shí)現(xiàn)統(tǒng)計所有表的空間占用與行數(shù)
查看某個數(shù)據(jù)庫中所有表的空間與行數(shù)統(tǒng)計
SELECT
TABLE_NAME AS `表名`,
TABLE_ROWS AS `行數(shù)`,
ROUND(DATA_LENGTH / 1024 / 1024, 2) AS `數(shù)據(jù)大小(MB)`,
ROUND(INDEX_LENGTH / 1024 / 1024, 2) AS `索引大小(MB)`,
ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024, 2) AS `總占用空間(MB)`,
ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024 / 1024, 2) AS `總占用空間(GB)`
FROM
information_schema.TABLES
WHERE
TABLE_SCHEMA = 'your_database_name' -- 替換為你的數(shù)據(jù)庫名
ORDER BY
(DATA_LENGTH + INDEX_LENGTH) DESC;執(zhí)行結(jié)果

查看某個數(shù)據(jù)庫總空間占用情況
SELECT
TABLE_SCHEMA AS `數(shù)據(jù)庫名`,
SUM(TABLE_ROWS) AS `總行數(shù)`,
ROUND(SUM(DATA_LENGTH) / 1024 / 1024, 2) AS `數(shù)據(jù)總大小(MB)`,
ROUND(SUM(INDEX_LENGTH) / 1024 / 1024, 2) AS `索引總大小(MB)`,
ROUND(SUM(DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024, 2) AS `總占用空間(MB)`,
ROUND(SUM(DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024 / 1024, 2) AS `總占用空間(GB)`
FROM
information_schema.TABLES
WHERE
TABLE_SCHEMA = 'your_database_name'
GROUP BY
TABLE_SCHEMA;執(zhí)行結(jié)果

知識擴(kuò)展
統(tǒng)計數(shù)據(jù)庫下所有表的數(shù)據(jù)行數(shù)
剛開始統(tǒng)計數(shù)據(jù)庫中有多少行數(shù)據(jù)的時候,使用 information_schema.TABLES 去統(tǒng)計發(fā)現(xiàn)誤差很大 ,具體原因這里不再說明
select table_schema as '數(shù)據(jù)庫', table_name as '表名', table_comment as '表注釋', table_rows as '記錄數(shù)', truncate(data_length/1024/1024, 2) as '數(shù)據(jù)容量(MB)', truncate(index_length/1024/1024, 2) as '索引容量(MB)' from information_schema.tables where table_schema='test' order by table_rows desc, index_length desc;
以下是另一個方法:
執(zhí)行sql,生成所有表的統(tǒng)計語句
select concat(
'select "',
TABLE_name,
'", count(*) as t from `',
TABLE_SCHEMA,
'`.`',
TABLE_name,
'` union all'
) from information_schema.tables
-- 排除指定庫
where
table_schema not in('mysql','information_schema','performance_schema','sys');
結(jié)果如下:

查詢出來的結(jié)果拷貝出來,去掉最后一行的 union all

匯總

到此這篇關(guān)于MySQL數(shù)據(jù)庫實(shí)現(xiàn)統(tǒng)計所有表的空間占用與行數(shù)的文章就介紹到這了,更多相關(guān)MySQL統(tǒng)計表空間占用與行數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mysql5.5數(shù)據(jù)庫data目錄遷移方法詳解
這篇文章主要介紹了mysql5.5數(shù)據(jù)庫data目錄遷移方法詳解,其實(shí)數(shù)據(jù)庫的目錄就在你安裝目錄的data里面,我的實(shí)在D盤。可能大家默認(rèn)安裝都在C吧。這樣就要遷移了。這個大家都懂需要的朋友可以參考下2016-04-04
MySql數(shù)據(jù)庫基礎(chǔ)之子查詢詳解
所謂子查詢是指在一個查詢中嵌套了其他的若干查詢,即在一個SELECT查詢語句的WHERE或FROM子句中包含另一個SELECT查詢語句,下面這篇文章主要給大家介紹了關(guān)于MySQL子查詢的相關(guān)資料,需要的朋友可以參考下2022-09-09
mysql使用 performance_schema 進(jìn)行性能監(jiān)控
MySQL5.7及以上版本引入的performance_schema是一個高效的性能監(jiān)控工具,替代了舊的SHOWPROFILES,它通過系統(tǒng)表實(shí)時收集SQL執(zhí)行、鎖等待、I/O等性能數(shù)據(jù),提供了詳細(xì)的監(jiān)控功能,下面就來詳細(xì)的介紹一下,感興趣的可以了解一下2026-03-03
詳解如何對MySQL數(shù)據(jù)庫進(jìn)行授權(quán)管理
MySQL數(shù)據(jù)授權(quán)是指數(shù)據(jù)庫管理員通過設(shè)置權(quán)限,控制用戶對數(shù)據(jù)庫中的數(shù)據(jù)的訪問和操作能力,在MySQL中,每個用戶賬戶都有特定的權(quán)限,本文給大家介紹了如何對MySQL數(shù)據(jù)庫進(jìn)行授權(quán)管理,需要的朋友可以參考下2024-11-11
保證MySQL與Redis數(shù)據(jù)一致性的6種實(shí)現(xiàn)方案
這篇文章將聚焦在一個非常重要且復(fù)雜的問題上:MySQL與Redis數(shù)據(jù)的一致性,當(dāng)我們在應(yīng)用中同時使用MySQL和Redis時,如何保證兩者的數(shù)據(jù)一致性呢?下面就來分享幾種實(shí)用的解決方案,需要的朋友可以參考下2024-03-03

