在使用MySQL的過程中,有時候會發現磁盤占用率很高,這時候我們可以通過查詢來找到原因。
SELECT CONCAT(table_schema, '.', table_name) AS `table`, CONCAT(ROUND(table_rows / 1000000, 2), 'M') rows, CONCAT(ROUND(data_length / ( 1024 * 1024 * 1024 ), 2), 'G') data, CONCAT(ROUND(index_length / ( 1024 * 1024 * 1024 ), 2), 'G') idx, CONCAT(ROUND(( data_length + index_length ) / ( 1024 * 1024 * 1024 ), 2), 'G') total_size, ROUND(index_length / data_length, 2) idxfrac FROM information_schema.TABLES ORDER BY data_length DESC LIMIT 10;
以上SQL語句可以列出占用磁盤空間前十大的表,我們可以通過這個列表找到哪些表占用了較多的空間。
除此之外,我們還可以使用下面的SQL語句查找某個具體的表所占用的空間。
SELECT table_name AS `Table`, round(((data_length + index_length)) / 1024 / 1024, 2) `Size in MB` FROM information_schema.TABLES WHERE table_schema = 'database_name' AND table_name = 'table_name';
上述SQL語句中,我們需要將database_name和table_name替換成具體的數據庫名和表名。
通過以上的查詢,我們可以清楚地了解到哪些表的數據量比較多,占用了較多的磁盤空間,我們可以根據需要進行相應的優化和清理。
上一篇css3 怎么讓圖片變大
下一篇mysql查詢空值有多少