«

mysql查看数据库各表占用空间大小

刚子 发布于 阅读:24


在 MySQL 中,可通过查询 information_schema.tables 系统表获取每个表的占用大小(包括数据大小、索引大小、总大小等)。该表存储了所有数据库表的元数据信息,以下是具体方法:

SELECT 
  TABLE_NAME AS '表名',
  ROUND(DATA_LENGTH / 1024 / 1024, 2) AS '数据大小(MB)',  -- 数据文件大小
  ROUND(INDEX_LENGTH / 1024 / 1024, 2) AS '索引大小(MB)',  -- 索引文件大小
  ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024, 2) AS '总大小(MB)',  -- 总占用大小
  ROUND(DATA_FREE / 1024 / 1024, 2) AS '空闲空间(MB)'  -- 未使用的空间(删除记录后可能残留)
FROM 
  information_schema.TABLES 
WHERE 
  TABLE_SCHEMA = 'your_database_name'  -- 替换为你的数据库名
ORDER BY 
  (DATA_LENGTH + INDEX_LENGTH) DESC;  -- 按总大小降序排列