使用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ù)占用了多少磁盤大小,可以通過一些sql語(yǔ)句查詢到整個(gè)數(shù)據(jù)庫(kù)的容量,也可以單獨(dú)查看表所占容量。
1、要查詢表所占的容量,就是把表的數(shù)據(jù)和索引加起來就可以了 select sum(DATA_LENGTH)+sum(INDEX_LENGTH) from information_schema.tables where table_schema='數(shù)據(jù)庫(kù)名'; 上面獲取的結(jié)果是以字節(jié)為單位的,可以通過%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ù)占用磁盤的空間大小可以通 過對(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ǔ)過程和函數(shù)的信息,不包含自定義的過程或函數(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數(shù)據(jù)庫(kù)的數(shù)據(jù)約束實(shí)例及五種完整性約束介紹
今天小編就為大家分享一篇關(guān)于基于MySQL數(shù)據(jù)庫(kù)的數(shù)據(jù)約束實(shí)例及五種完整性約束介紹,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-01-01MySQL在Centos7環(huán)境安裝的完整步驟記錄
在CentOS7環(huán)境下安裝MySQL是一項(xiàng)常見的任務(wù),尤其對(duì)于那些沒有網(wǎng)絡(luò)連接或者需要在隔離環(huán)境中的開發(fā)者來說,離線安裝MySQL顯得尤為重要,這篇文章主要介紹了MySQL在Centos7環(huán)境安裝的完整步驟,需要的朋友可以參考下2024-10-10Navicat for MySQL(mysql圖形化管理工具)是什么?
這里就給大家介紹一個(gè)常用的MySQL數(shù)據(jù)庫(kù)管理工具:Navicat for MySQL,需要的朋友可以參考下2015-09-09mysql中如何去除小數(shù)點(diǎn)后面多余的0
這篇文章主要介紹了mysql 中去除小數(shù)點(diǎn)后面多余的0的方法 ,需要的朋友可以參考下2014-03-03MySQL數(shù)據(jù)庫(kù)卸載以及刪除所有有關(guān)信息詳細(xì)步驟
在MySQL中數(shù)據(jù)刪除操作不僅僅是簡(jiǎn)單地將某一個(gè)或多個(gè)行刪除,下面這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫(kù)卸載以及刪除所有有關(guān)信息的詳細(xì)步驟,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06mysql中全連接full join...on...的用法說明
這篇文章主要介紹了mysql中全連接full join...on...的用法說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03