MySQL查看數(shù)據(jù)庫、表和索引的容量大小的方法
一、前言
在我們平時工作中,如果一個業(yè)務運行很久了,可能會需要我們?nèi)タ纯催@塊業(yè)務產(chǎn)生的數(shù)據(jù)量有多大,比如這個業(yè)務所使用的數(shù)據(jù)庫存儲空間都使用了多少個G了,哪一張數(shù)據(jù)表才是大表,下面整理了一些可以拿來即用的SQL以供小伙伴們參考。
二、如何在 MySQL 數(shù)據(jù)庫中,查詢數(shù)據(jù)庫、表、索引的容量大小?
在每個 MySQL 實例中,都有一個獨立的 information_schema 庫,它是自帶的庫,記錄著這個 MySQL 實例中所有數(shù)據(jù)庫的元數(shù)據(jù)、統(tǒng)計信息、以及有關 MySQL 的訪問權限信息。其中就包括了所有數(shù)據(jù)庫、表、索引的詳細信息。

在information_schema 庫下有一個名為TABLES的視圖,通過這個視圖,可獲取指定庫的表名、引擎、行數(shù)等元數(shù)據(jù),下面我們直接看示例sql:
1.查看MySQL中所有數(shù)據(jù)庫的容量大小
SELECT table_schema as '數(shù)據(jù)庫', sum(table_rows) as '記錄數(shù)', sum(truncate(data_length/1024/1024, 2)) as '數(shù)據(jù)容量(MB)', sum(truncate(index_length/1024/1024, 2)) as '索引容量(MB)', sum(truncate(DATA_FREE/1024/1024, 2)) as '碎片占用(MB)' from information_schema.tables group by table_schema order by sum(data_length) desc, sum(index_length) desc;

data_length、index_length、DATA_FREE等字段,所存儲的容量信息單位是字節(jié),所以我們要除以 2個1024把字節(jié)轉化為可讀性更強的MB。
上面只截了兩個數(shù)據(jù)庫的信息出來,一個數(shù)據(jù)庫的總大小就是數(shù)據(jù)容量和索引容量之和。
2.查看MySQL指定數(shù)據(jù)庫的容量大小
SELECT table_schema as '數(shù)據(jù)庫', sum(table_rows) as '記錄數(shù)', sum(truncate(data_length/1024/1024, 2)) as '數(shù)據(jù)容量(MB)', sum(truncate(index_length/1024/1024, 2)) as '索引容量(MB)', sum(truncate(DATA_FREE/1024/1024, 2)) as '碎片占用(MB)' from information_schema.tables where table_schema='ry' -- 這里ry替換成你自己的數(shù)據(jù)庫名 order by data_length desc, index_length desc;
3.查看MySQL指定數(shù)據(jù)庫的表大小
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)' from information_schema.tables where table_schema='ry'-- 你要查哪個數(shù)據(jù)庫中的表 order by data_length desc, index_length desc;
4.查看指定表的詳細空間信息
SELECT
table_name as '表名',
engine as '存儲引擎',
table_rows as '記錄數(shù)',
*round*(data_length/1024/1024, 2) as '數(shù)據(jù)容量(MB)',
*round*(index_length/1024/1024, 2) as '索引容量(MB)'
from information_schema.tables
where table_schema='ry' -- 你要查哪個數(shù)據(jù)庫
and table_name = 'seat';-- 你要查哪個數(shù)據(jù)庫中的哪個表
通過以上方法,小伙伴們可以全面了解MySQL數(shù)據(jù)庫中各個表的空間占用情況,為數(shù)據(jù)庫優(yōu)化和維護提供數(shù)據(jù)支持。
到此這篇關于MySQL查看數(shù)據(jù)庫、表和索引的容量大小的方法的文章就介紹到這了,更多相關MySQL查看數(shù)據(jù)庫、表和索引容量內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
CentOS6.9下mysql 5.7.17安裝配置方法圖文教程
這篇文章主要為大家詳細介紹了CentOS6.9下mysql 5.7.17安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-10-10
mysql格式化小數(shù)保留小數(shù)點后兩位(小數(shù)點格式化)
今天遇到一個問題,格式化浮點數(shù)的問題,用format(col,2)保留兩位小數(shù)點,出現(xiàn)一個問題,例如下面的語句,后面我們給出解決方法2013-12-12
MYSQL加密和壓縮函數(shù)詳解以及實戰(zhàn)(附示例)
這篇文章主要給大家介紹了關于MYSQL加密和壓縮函數(shù)詳解以及實戰(zhàn)的相關資料,加密函數(shù)主要用來對數(shù)據(jù)進行加密和界面處理,以保證某些重要數(shù)據(jù)不被別人獲取,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2023-12-12
MySql 8.0.16版本安裝提示已經(jīng)不使用“UTF8B3”而是使用“UTF8B4”問題
這篇文章主要介紹了MySql 8.0.16版本安裝提示已經(jīng)不使用“UTF8B3”而是使用“UTF8B4”問題 ,需要的朋友可以參考下2019-07-07
MySQL數(shù)據(jù)庫中如何查詢近一年的數(shù)據(jù)
最近碰到一個需求是統(tǒng)計某張表的數(shù)據(jù),統(tǒng)計時間維度為近一年,下面這篇文章主要給大家介紹了關于MySQL數(shù)據(jù)庫中如何查詢近一年的數(shù)據(jù)的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-07-07

