MySQL檢視資料庫、表佔用磁碟大小
阿新 • • 發佈:2022-03-19
原文地址:請優先檢視!請優先檢視!
Mysql——檢視資料庫,表佔用磁碟大小
MySQL檢視資料庫或表磁碟佔用空間
直接複製執行
1、查詢所有資料庫佔用磁碟空間大小
select TABLE_SCHEMA, concat(truncate(sum(data_length)/1024/1024,2),' MB') as data_size, concat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size from information_schema.tables group by TABLE_SCHEMA ORDER BY data_size desc;
select concat(truncate(sum(data_length)/1024/1024,2),'MB') as data_size, concat(truncate(sum(max_data_length)/1024/1024,2),'MB') as max_data_size, concat(truncate(sum(data_free)/1024/1024,2),'MB') as data_free, concat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size from information_schema.tables where TABLE_SCHEMA = 'databasename'; # databasename 具體庫名
2、查詢單個庫中所有表磁碟佔用大小
select concat(truncate(sum(data_length)/1024/1024,2),'MB') as data_size, concat(truncate(sum(max_data_length)/1024/1024,2),'MB') as max_data_size, concat(truncate(sum(data_free)/1024/1024,2),'MB') as data_free, concat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size from information_schema.tables where TABLE_NAME = 'tablename'; # tablename 具體表名
3、使用optimize命令
optimize table tb_report_inventory;
使用的時間比較長,需要耐心等待。
注意:optimize執行時會將表鎖住,所以不要在高峰期使用。也不要經常使用,每月一次就足夠了
問題
若執行 2、查詢單個庫中所有表磁碟佔用大小出現以下報錯:
Expression #2 of SELECT list is not in GROUP BY clause and contains
nonaggregated column ‘sss.month_id’ which is not functionally
dependent on columns in GROUP BY clause; this is incompatible with
sql_mode=only_full_group_by
解決方法一:
此方法只是臨時解決,重啟mysql伺服器會還原。
開啟navcat,
用sql查詢:
select @@global.sql_mode
查詢出來的值為:
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
去掉ONLY_FULL_GROUP_BY,重新設定值。
set @@global.sql_mode
=’STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION’;
解決方法二:
成功的步驟:
開啟檔案
sudo vim /etc/mysql/conf.d/mysql.cnf
滾動到檔案底部複製並貼上
[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
到檔案的底部
儲存並退出輸入模式
sudo service mysql restart
重啟MySQL。
完成!
————————————————
版權宣告:本文為CSDN博主「@SokachWang」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/qq_34707744/article/details/78031413