最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

查看MySQL數(shù)據(jù)庫容量大小的實用查詢方法(含表數(shù)據(jù)、磁盤占用統(tǒng)計)

 更新時間:2026年06月09日 09:44:36   作者:ULIi096kr  
在運維MySQL數(shù)據(jù)庫、服務(wù)器擴容、業(yè)務(wù)性能優(yōu)化場景中,查看數(shù)據(jù)庫整體容量、單表大小、磁盤實際占用是高頻操作,本文整理線上生產(chǎn)環(huán)境通用、兼容MySQL 5.7/8.0全版本的查詢語句,從全局數(shù)據(jù)庫容量、指定庫大小、單表數(shù)據(jù) + 索引、磁盤真實占用、空間碎片分析多維度講解

在運維 MySQL 數(shù)據(jù)庫、服務(wù)器擴容、業(yè)務(wù)性能優(yōu)化場景中,查看數(shù)據(jù)庫整體容量、單表大小、磁盤實際占用是高頻操作。很多開發(fā)者僅會簡單查詢數(shù)據(jù)量,卻分不清邏輯數(shù)據(jù)大小與物理磁盤占用,也無法快速統(tǒng)計庫、表、索引、碎片空間。

本文整理線上生產(chǎn)環(huán)境通用、兼容 MySQL 5.7/8.0 全版本的查詢語句,從全局數(shù)據(jù)庫容量、指定庫大小、單表數(shù)據(jù) + 索引、磁盤真實占用、空間碎片分析多維度講解,語句可直接復(fù)制運行,同時附實操場景、結(jié)果解讀與 SEO 友好的運維技巧,適合后端開發(fā)、DBA、運維人員收藏使用。

關(guān)鍵詞:MySQL 查看數(shù)據(jù)庫大小、MySQL 統(tǒng)計表容量、MySQL 磁盤占用、MySQL 表空間查詢、MySQL 碎片清理

一、前言:為什么要查看 MySQL 數(shù)據(jù)庫容量?

日常開發(fā)與運維中,監(jiān)控數(shù)據(jù)庫空間至關(guān)重要:

  1. 提前預(yù)警磁盤爆滿,避免數(shù)據(jù)庫因空間不足宕機、寫入失?。?/li>
  2. 定位大表、冗余表,做分表、歸檔、數(shù)據(jù)清理優(yōu)化;
  3. 統(tǒng)計索引占用空間,判斷索引是否冗余、低效;
  4. 服務(wù)器資源評估,為磁盤擴容、云數(shù)據(jù)庫規(guī)格選型提供數(shù)據(jù)依據(jù)。

MySQL 中存在邏輯數(shù)據(jù)大小物理磁盤占用兩個概念:邏輯大小是單純數(shù)據(jù) + 索引的統(tǒng)計值,物理大小包含日志、碎片、臨時空間,二者結(jié)果會存在差異,下文會逐一區(qū)分講解。

環(huán)境說明:本文所有 SQL 語句兼容 MySQL 5.6、5.7、8.0,支持單機 MySQL、阿里云 / 騰訊云 RDS、自建 MySQL 集群。

二、前置知識:MySQL 核心系統(tǒng)表說明

MySQL 存儲所有庫、表、空間信息都在information_schema系統(tǒng)庫中,這是查詢?nèi)萘康暮诵谋?,重點用到兩張表:

  1. information_schema.SCHEMATA:存儲所有數(shù)據(jù)庫(schema)基礎(chǔ)信息,用于統(tǒng)計整個庫的總?cè)萘浚?/li>
  2. information_schema.TABLES:存儲所有數(shù)據(jù)表的元數(shù)據(jù),包含數(shù)據(jù)大小、索引大小、引擎、行數(shù)、碎片空間等核心字段。

常用字段釋義(方便理解查詢結(jié)果):

  • DATA_LENGTH:表數(shù)據(jù)空間大?。▎挝唬鹤止?jié))
  • INDEX_LENGTH:表索引空間大?。▎挝唬鹤止?jié))
  • DATA_FREE:表空閑碎片空間(InnoDB 引擎重點關(guān)注)
  • TABLE_SCHEMA:數(shù)據(jù)庫名稱
  • TABLE_NAME:數(shù)據(jù)表名稱
  • ENGINE:存儲引擎(InnoDB/MyISAM)

單位換算:1 MB = 1024 * 1024 字節(jié),下文 SQL 已做單位轉(zhuǎn)換,直接展示 MB/GB,無需手動計算。

三、實操 1:查看 MySQL 所有數(shù)據(jù)庫總?cè)萘浚ㄈ纸y(tǒng)計)

需求:一次性查出服務(wù)器上所有數(shù)據(jù)庫名稱、數(shù)據(jù)總大小、索引大小、庫總?cè)萘?/strong>,全局盤點所有庫空間占用。

執(zhí)行 SQL 語句

SELECT
    TABLE_SCHEMA AS 數(shù)據(jù)庫名,
    ROUND(SUM(DATA_LENGTH)/1024/1024, 2) AS 數(shù)據(jù)大小_MB,
    ROUND(SUM(INDEX_LENGTH)/1024/1024, 2) AS 索引大小_MB,
    ROUND((SUM(DATA_LENGTH) + SUM(INDEX_LENGTH))/1024/1024, 2) AS 數(shù)據(jù)庫總?cè)萘縚MB,
    ROUND((SUM(DATA_LENGTH) + SUM(INDEX_LENGTH))/1024/1024/1024, 4) AS 數(shù)據(jù)庫總?cè)萘縚GB
FROM information_schema.TABLES
GROUP BY TABLE_SCHEMA
ORDER BY 數(shù)據(jù)庫總?cè)萘縚MB DESC;

結(jié)果解讀

  1. 結(jié)果按庫容量從大到小排序,快速定位占用空間最大的業(yè)務(wù)庫;
  2. 系統(tǒng)庫(mysql、information_schema、performance_schema)為 MySQL 內(nèi)置庫,正常占用極小;
  3. 業(yè)務(wù)庫重點查看數(shù)據(jù)大小索引大小,若索引遠大于數(shù)據(jù),說明索引設(shè)計不合理。

適用場景

服務(wù)器日常巡檢、新服務(wù)器資源盤點、多業(yè)務(wù)庫空間整體監(jiān)控。

四、實操 2:查詢指定單個數(shù)據(jù)庫容量(精準統(tǒng)計)

如果只需要查看某一個業(yè)務(wù)庫的總大小,使用以下語句,替換庫名即可。

基礎(chǔ)查詢(指定數(shù)據(jù)庫總大?。?/h3>

test_db 替換為你的實際數(shù)據(jù)庫名:

SELECT
    ROUND(SUM(DATA_LENGTH)/1024/1024, 2) AS 數(shù)據(jù)大小_MB,
    ROUND(SUM(INDEX_LENGTH)/1024/1024, 2) AS 索引大小_MB,
    ROUND((SUM(DATA_LENGTH) + SUM(INDEX_LENGTH))/1024/1024, 2) AS 庫總?cè)萘縚MB,
    ROUND((SUM(DATA_LENGTH) + SUM(INDEX_LENGTH))/1024/1024/1024, 4) AS 庫總?cè)萘縚GB
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'test_db';

進階:統(tǒng)計指定庫 + 區(qū)分存儲引擎

部分庫混合使用 InnoDB、MyISAM 引擎,可按引擎分組統(tǒng)計:

SELECT
    ENGINE AS 存儲引擎,
    ROUND(SUM(DATA_LENGTH)/1024/1024, 2) AS 數(shù)據(jù)大小_MB,
    ROUND(SUM(INDEX_LENGTH)/1024/1024, 2) AS 總?cè)萘縚MB
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'test_db'
GROUP BY ENGINE;

五、實操 3:查看指定數(shù)據(jù)庫下所有數(shù)據(jù)表大?。▎伪斫y(tǒng)計)

最常用的運維場景:查看某個庫下每一張表的大小、數(shù)據(jù)、索引、行數(shù),快速找出大表。

完整 SQL(表大小 + 行數(shù) + 引擎)

SELECT
    TABLE_NAME AS 表名,
    TABLE_ROWS AS 預(yù)估行數(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,
    ENGINE AS 存儲引擎
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'test_db'
ORDER BY 表總大小_MB DESC;

關(guān)鍵說明

  1. TABLE_ROWS預(yù)估行數(shù):InnoDB 引擎為抽樣統(tǒng)計,存在誤差;MyISAM 為精確行數(shù);
  2. 語句默認按表容量倒序,排在最上方的就是當(dāng)前庫中最大的數(shù)據(jù)表;
  3. 若單表超過 10GB,建議結(jié)合業(yè)務(wù)做分表、分區(qū)、冷熱數(shù)據(jù)分離。

六、實操 4:查看表碎片空間(InnoDB 引擎專屬)

InnoDB 引擎在頻繁增刪改數(shù)據(jù)后,會產(chǎn)生大量空間碎片,碎片不會自動釋放,導(dǎo)致:

  • 磁盤占用居高不下;
  • 查詢、寫入性能下降;
  • 邏輯數(shù)據(jù)很小,但物理磁盤占用很大。

1. 查詢表碎片大小

SELECT
    TABLE_NAME AS 表名,
    ROUND(DATA_FREE/1024/1024, 2) AS 碎片空間_MB,
    ROUND((DATA_FREE/(DATA_LENGTH + INDEX_LENGTH)) * 100, 2) AS 碎片占比_百分比
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'test_db' AND ENGINE = 'InnoDB'
ORDER BY 碎片空間_MB DESC;

2. 碎片清理方案(生產(chǎn)環(huán)境慎用,避開業(yè)務(wù)高峰)

  • InnoDB 表:執(zhí)行OPTIMIZE TABLE 表名; 整理碎片(會鎖表,業(yè)務(wù)低峰執(zhí)行)
  • MyISAM 表:同樣使用 OPTIMIZE TABLE,修復(fù)表 + 整理碎片

重要提醒:線上高并發(fā)業(yè)務(wù),優(yōu)先使用數(shù)據(jù)歸檔代替頻繁碎片整理,避免鎖表影響業(yè)務(wù)。

七、實操 5:查看 MySQL 物理磁盤真實占用(系統(tǒng)層面)

上述所有 SQL 查詢的是MySQL 邏輯空間,和服務(wù)器磁盤實際占用可能不一致。想要查看真實磁盤占用,需要登錄服務(wù)器執(zhí)行 Linux 命令。

1. 查找 MySQL 數(shù)據(jù)存儲目錄

登錄 MySQL 執(zhí)行:

show variables like 'datadir';

輸出示例:/usr/local/mysql/data/,此路徑為 MySQL 數(shù)據(jù)根目錄。

2. Linux 查看磁盤占用命令

(1)查看整個 MySQL 目錄總大小

du -sh /usr/local/mysql/data/ 

(2)查看單個數(shù)據(jù)庫文件夾大小

du -sh /usr/local/mysql/data/test_db/ 

(3)查看目錄下所有表文件大小(按大小排序)

du -lh /usr/local/mysql/data/test_db/ | sort -rh 

邏輯空間 vs 物理空間差異總結(jié)

  1. 物理磁盤 > 邏輯空間:存在碎片、binlog 日志、redo/undo 日志、臨時文件;
  2. 物理磁盤 < 邏輯空間:MySQL 開啟了壓縮、頁合并功能;
  3. 云 RDS 用戶:無法登錄服務(wù)器,直接在云平臺后臺查看磁盤監(jiān)控即可。

八、常見問題與避坑總結(jié)

問題 1:查詢結(jié)果為 0?

  • 原因:庫名、表名大小寫錯誤(Linux 系統(tǒng) MySQL 區(qū)分大小寫);
  • 解決:核對TABLE_SCHEMA名稱,和實際數(shù)據(jù)庫名保持一致。

問題 2:InnoDB 表行數(shù)不準?

  • 正?,F(xiàn)象:InnoDB 為事務(wù)型引擎,不會實時統(tǒng)計精確行數(shù),大表建議使用 SELECT COUNT(*) FROM 表名; 精確統(tǒng)計。

問題 3:執(zhí)行 SQL 權(quán)限不足?

  • 原因:當(dāng)前數(shù)據(jù)庫賬號沒有 information_schema 查詢權(quán)限;
  • 解決:使用 root 管理員賬號執(zhí)行,或給普通賬號授權(quán)。

問題 4:碎片占比過高如何處理?

碎片占比超過 30% 建議整理碎片,務(wù)必選擇凌晨、業(yè)務(wù)低峰期操作,防止鎖表。

九、總結(jié)

本文覆蓋了 MySQL 查看容量的全場景方案,從 SQL 查詢庫、表、索引、碎片,到 Linux 系統(tǒng)查看物理磁盤占用,適配所有主流 MySQL 版本,語句可直接復(fù)制用于生產(chǎn)環(huán)境。

快速使用清單(收藏備用)

  1. 全局所有庫大小 → 第三節(jié) SQL;
  2. 單個數(shù)據(jù)庫總?cè)萘?→ 第四節(jié) SQL;
  3. 庫下所有單表大小 → 第五節(jié) SQL;
  4. InnoDB 碎片查詢 → 第六節(jié) SQL;
  5. 服務(wù)器物理磁盤占用 → 第七節(jié) Linux 命令。

數(shù)據(jù)庫空間監(jiān)控是運維基礎(chǔ)工作,建議將容量查詢腳本加入定時巡檢,提前發(fā)現(xiàn)空間隱患,保障業(yè)務(wù)穩(wěn)定運行。

以上就是查看MySQL數(shù)據(jù)庫容量大小的實用查詢方法(含表數(shù)據(jù)、磁盤占用統(tǒng)計)的詳細內(nèi)容,更多關(guān)于MySQL數(shù)據(jù)庫容量大小查看的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • MySQL 的 INSERT插入數(shù)據(jù)的使用方法

    MySQL 的 INSERT插入數(shù)據(jù)的使用方法

    本文詳細介紹了MySQL中INSERT語句的使用方法,包括插入單行或多行數(shù)據(jù)、使用SELECT語句插入數(shù)據(jù)、條件插入、高級用法(LOW_PRIORITY、DELAYED修飾符)以及注意事項,感興趣的朋友跟隨小編一起看看吧
    2026-03-03
  • MySQL8.x msi版安裝教程圖文詳解

    MySQL8.x msi版安裝教程圖文詳解

    這篇文章主要介紹了MySQL8.x msi版安裝教程 ,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • MySQL中慢SQL的監(jiān)控與優(yōu)化技巧

    MySQL中慢SQL的監(jiān)控與優(yōu)化技巧

    當(dāng)你的應(yīng)用越來越慢,用戶開始抱怨卡頓,數(shù)據(jù)庫CPU飆升到100%——很可能就是慢SQL在作祟!別擔(dān)心,今天我將帶你從零開始掌握MySQL慢SQL的監(jiān)控與優(yōu)化技巧,讓你的數(shù)據(jù)庫性能提升10倍,需要的朋友可以參考下
    2025-08-08
  • Mysql詳細剖析數(shù)據(jù)庫中的存儲引擎

    Mysql詳細剖析數(shù)據(jù)庫中的存儲引擎

    這篇文章詳細剖析了數(shù)據(jù)庫中的存儲引擎,存儲引擎是數(shù)據(jù)庫中非常關(guān)鍵的部分,有感興趣的小伙伴可以參考閱讀本文
    2023-03-03
  • MySQL?中的服務(wù)器配置和狀態(tài)詳解(MySQL?Server?Configuration?and?Status)

    MySQL?中的服務(wù)器配置和狀態(tài)詳解(MySQL?Server?Configuration?and?Statu

    MySQL服務(wù)器配置和狀態(tài)設(shè)置包括服務(wù)器選項、系統(tǒng)變量和狀態(tài)變量三個方面,可以通過命令行、配置文件或SQL語句進行設(shè)置和查看,服務(wù)器選項和系統(tǒng)變量可以是全局或會話級別的,狀態(tài)變量只讀且不可修改,sql_mode是一個特殊的變量,影響SQL語句的執(zhí)行模式,感興趣的朋友一起看看吧
    2025-02-02
  • mysql5.5與mysq 5.6中禁用innodb引擎的方法

    mysql5.5與mysq 5.6中禁用innodb引擎的方法

    這篇文章主要介紹了mysql5.5中禁用innodb引擎的方法,需要的朋友可以參考下
    2014-04-04
  • 深入談?wù)凪ySQL中的自增主鍵

    深入談?wù)凪ySQL中的自增主鍵

    這篇文章主要給大家介紹了關(guān)于MySQL中自增主鍵的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • MySQL數(shù)據(jù)庫中存儲圖片和讀取圖片的操作代碼

    MySQL數(shù)據(jù)庫中存儲圖片和讀取圖片的操作代碼

    在MySQL數(shù)據(jù)庫中存儲圖片通常有兩種主要方式:將圖片以二進制數(shù)據(jù)(BLOB 類型)直接存儲在數(shù)據(jù)庫中,或者將圖片文件存儲在服務(wù)器文件系統(tǒng)上,而在數(shù)據(jù)庫中存儲圖片的路徑或URL,以下是這兩種方法的詳細解釋,包括存儲和讀取操作,需要的朋友可以參考下
    2024-11-11
  • MySQL CHAR和VARCHAR存儲、讀取時的差別

    MySQL CHAR和VARCHAR存儲、讀取時的差別

    這篇文章主要介紹了MySQL CHAR和VARCHAR存儲的差別,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2020-11-11
  • MySQL主鍵與外鍵的基本概念與作用詳解

    MySQL主鍵與外鍵的基本概念與作用詳解

    在進行數(shù)據(jù)庫設(shè)計時,合理的添加主鍵和外鍵能有效保障數(shù)據(jù)的完整性和一致性,使得數(shù)據(jù)管理更加科學(xué)高效,本文將詳細介紹MySQL中主鍵和外鍵的基本概念、它們之間的關(guān)系、作用及一些高級知識點,感興趣的朋友一起看看吧
    2025-10-10

最新評論

平山县| 招远市| 蒲江县| 卓资县| 彩票| 葫芦岛市| 英吉沙县| 社旗县| 宜昌市| 贵德县| 建平县| 喜德县| 瑞金市| 龙州县| 固安县| 含山县| 抚远县| 商水县| 浮梁县| 鄂托克旗| 海门市| 密山市| 东辽县| 惠水县| 蕲春县| 安化县| 普定县| 霍山县| 伽师县| 宁德市| 即墨市| 九台市| 弥渡县| 普定县| 灵石县| 民和| 阿拉善左旗| 会理县| 泰顺县| 阿尔山市| 增城市|