使用mysql語(yǔ)句查看數(shù)據(jù)庫(kù)表所占容量空間大小
一、查看所有數(shù)據(jù)庫(kù)容量大小
SELECT table_schema AS '數(shù)據(jù)庫(kù)', 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)' FROM information_schema.TABLES GROUP BY table_schema ORDER BY sum( data_length ) DESC, sum( index_length ) DESC;
二、查看所有數(shù)據(jù)庫(kù)各表容量大小
SELECT table_schema AS '數(shù)據(jù)庫(kù)', table_name 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 ORDER BY data_length DESC, index_length DESC;
三、查看指定數(shù)據(jù)庫(kù)容量大小
SELECT table_schema AS '數(shù)據(jù)庫(kù)', 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)' FROM information_schema.TABLES WHERE table_schema = 'osale_im';
四、查看指定數(shù)據(jù)庫(kù)各表容量大小
SELECT table_schema AS '數(shù)據(jù)庫(kù)', table_name 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 = 'osale_im' ORDER BY data_length DESC, index_length DESC;
五:查看指定數(shù)據(jù)庫(kù)指定表容量大小
六. 查看所有產(chǎn)生碎片的表
SELECT table_schema db, table_name, data_free, engine FROM information_schema.tables WHERE table_schema NOT IN ('information_schema', 'mysql') AND data_free > 0 ORDER BY DATA_FREE DESC;
查看某個(gè)表的碎片大小
SHOW TABLE STATUS LIKE '表名';
查詢結(jié)果中的'Data_free'字段的值就是碎片大小。
七. 清理表碎片
/*1. MyISAM表*/ OPTIMIZE TABLE 表名 /*2. InnoDB表*/ ALTER TABLE 表名 engine = InnoDB
附:sql語(yǔ)句查詢到整個(gè)數(shù)據(jù)庫(kù)的容量
在需要備份數(shù)據(jù)庫(kù)里面的數(shù)據(jù)時(shí),我們需要知道數(shù)據(jù)庫(kù)占用了多少磁盤大小,可以通過(guò)一些sql語(yǔ)句查詢到整個(gè)數(shù)據(jù)庫(kù)的容量,也可以單獨(dú)查看表所占容量。
1、要查詢表所占的容量,就是把表的數(shù)據(jù)和索引加起來(lái)就可以了 select sum(DATA_LENGTH)+sum(INDEX_LENGTH) from information_schema.tables where table_schema='數(shù)據(jù)庫(kù)名'; 上面獲取的結(jié)果是以字節(jié)為單位的,可以通過(guò)%1024在%1024的到M為單位的結(jié)果。 2、查詢所有的數(shù)據(jù)大小 select concat(round(sum(DATA_LENGTH/1024/1024),2),'M') from tables; -- 查詢所有的數(shù)據(jù)大小 3、查詢某個(gè)表的數(shù)據(jù) select concat(round(sum(DATA_LENGTH/1024/1024),2),'M') from tables where table_schema='數(shù)據(jù)庫(kù)名' AND table_name='表名'; 1Byte = 8 bits; 1KB = 1024Byte = 2的10次方Byte = 1024 Byte 1MB = 1024KB = 2的20次方Byte = 1048576 Byte 1GB = 1024MB = 2的30次方Byte = 1073741824 Byte 1TB = 1024GB = 2的40次方Byte = 1099511627776 Byte 1PB = 1024TB = 2的50次方Byte = 1125899906842624 Byte 1EB = 1024PB = 2的60次方Byte = 1152921504606846976 Byte 1ZB = 1024EB = 2的70次方Byte = 1180591620717411303424 Byte 1YB = 1024ZB = 2的80次方Byte = 1208925819614629174706176 Byte 1DB = 1024YB = 2的90次方Byte = 1237940039285380274899124224 Byte 1NB = 1024DB = 2的100次方Byte = 1267650600228229401496703205376 Byte 在mysql中有一個(gè)information_schema數(shù)據(jù)庫(kù),這個(gè)數(shù)據(jù)庫(kù)中裝的是mysql的元數(shù)據(jù),包括數(shù)據(jù)庫(kù)信息、數(shù)據(jù)庫(kù)中表的信息等。所以要想查詢數(shù)據(jù)庫(kù)占用磁盤的空間大小可以通 過(guò)對(duì)information_schema數(shù)據(jù)庫(kù)進(jìn)行操作。 information_schema中的表主要有: schemata表:這個(gè)表里面主要是存儲(chǔ)在mysql中的所有的數(shù)據(jù)庫(kù)的信息 tables表:這個(gè)表里存儲(chǔ)了所有數(shù)據(jù)庫(kù)中的表的信息,包括每個(gè)表有多少個(gè)列等信息。 columns表:這個(gè)表存儲(chǔ)了所有表中的表字段信息。 statistics表:存儲(chǔ)了表中索引的信息。 user_privileges表:存儲(chǔ)了用戶的權(quán)限信息。 schema_privileges表:存儲(chǔ)了數(shù)據(jù)庫(kù)權(quán)限。 table_privileges表:存儲(chǔ)了表的權(quán)限。 column_privileges表:存儲(chǔ)了列的權(quán)限信息。 character_sets表:存儲(chǔ)了mysql可以用的字符集的信息。 collations表:提供各個(gè)字符集的對(duì)照信息。 collation_character_set_applicability表:相當(dāng)于collations表和character_sets表的前兩個(gè)字段的一個(gè)對(duì)比,記錄了字符集之間的對(duì)照信息。 table_constraints表:這個(gè)表主要是用于記錄表的描述存在約束的表和約束類型。 key_column_usage表:記錄具有約束的列。 routines表:記錄了存儲(chǔ)過(guò)程和函數(shù)的信息,不包含自定義的過(guò)程或函數(shù)信息。 views表:記錄了視圖信息,需要有show view權(quán)限。 triggers表:存儲(chǔ)了觸發(fā)器的信息,需要有super權(quán)限。
總結(jié)
到此這篇關(guān)于使用mysql語(yǔ)句查看數(shù)據(jù)庫(kù)表所占容量空間大小的文章就介紹到這了,更多相關(guān)mysql查看表容量空間大小內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL中slave_exec_mode參數(shù)詳解
本篇文章主要給大家講述了MySQL中slave_exec_mode參數(shù)的用法以及示例分析了出現(xiàn)的錯(cuò)誤問題和解決辦法,需要的朋友參考學(xué)習(xí)下吧。2017-12-12MySQL索引優(yōu)化之分頁(yè)探索詳細(xì)介紹
大家好,本篇文章主要講的是MySQL索引優(yōu)化之分頁(yè)探索詳細(xì)介紹,感興趣的同學(xué)趕快來(lái)看看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12mysql 8.0.12 解壓版安裝教程 個(gè)人親測(cè)!
這篇文章主要為大家詳細(xì)介紹了mysql 8.0.12 解壓版安裝教程,步驟簡(jiǎn)單,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-08-08mysql跨服務(wù)查詢之FEDERATED存儲(chǔ)引擎的實(shí)現(xiàn)
本文主要介紹了mysql跨服務(wù)查詢之FEDERATED存儲(chǔ)引擎的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01MYSQL中varchar和TEXT的相關(guān)問題詳析
varchar 和 text 是 MySQL 字符存儲(chǔ)爭(zhēng)議比較多的領(lǐng)域,下面這篇文章主要給大家介紹了關(guān)于MYSQL中varchar和TEXT,文中介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12MySQL InnoDB row_id邊界溢出驗(yàn)證的方法步驟
這篇文章主要給大家介紹了關(guān)于MySQL InnoDB row_id邊界溢出驗(yàn)證的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用MySQL InnoDB具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10mysql實(shí)現(xiàn)merge into問題
文章介紹了在數(shù)據(jù)庫(kù)操作中,如何使用`REPLACE INTO`和`INSERT INTO ON DUPLICATE KEY UPDATE`語(yǔ)句進(jìn)行數(shù)據(jù)更新和插入操作,如果不想創(chuàng)建唯一性索引,可以通過(guò)存儲(chǔ)過(guò)程實(shí)現(xiàn),文章通過(guò)實(shí)驗(yàn)和驗(yàn)證,展示了這兩種方法的實(shí)際效果2024-12-12MySQL入門(四) 數(shù)據(jù)表的數(shù)據(jù)插入、更新、刪除
這篇文章主要介紹了mysql數(shù)據(jù)庫(kù)中表的插入、更新、刪除非常簡(jiǎn)單,但是簡(jiǎn)單的也要學(xué)習(xí),細(xì)節(jié)決定成敗,需要的朋友可以參考下2018-07-07