ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

MySQL 表大小、行数及碎片空间统计

MySQL 表大小、行数及碎片空间统计 MySQL 表大小、行数及碎片空间统计实战一、SHOW TABLE STATUS 基本介绍MySQL 提供SHOW TABLE STATUS来查看表信息SHOWTABLESTATUSFROMyour_database;返回字段常用含义如下字段含义Name表名Engine存储引擎Rows行数估算值Data_length数据大小字节Index_length索引大小字节Data_free碎片空间字节Auto_increment下一条自增 IDCreate_time表创建时间Update_time最后更新时间示例NameEngineRowsData_lengthIndex_lengthData_freeuserInnoDB1000016384003276800order_logInnoDB5000052428801048576262144二、数据量统计 SQL1️⃣ 统计数据库总行数SELECTSUM(TABLE_ROWS)AStotal_rowsFROMinformation_schema.TABLESWHERETABLE_SCHEMADATABASE();示例结果total_rows75594含义当前数据库约有 7.5 万条数据。2️⃣ 统计数据库碎片空间SELECTSUM(TABLE_ROWS)AStotal_rows,ROUND(SUM(DATA_FREE)/1024/1024,2)ASdata_free_mbFROMinformation_schema.TABLESWHERETABLE_SCHEMADATABASE();示例结果total_rowsdata_free_mb7559432.00含义数据库总行数 75594 条碎片空间约 32 MB。3️⃣ 查看每张表的大小和碎片SELECTTABLE_NAME,TABLE_ROWS,ROUND(DATA_LENGTH/1024/1024,2)ASdata_mb,ROUND(DATA_FREE/1024/1024,2)ASdata_free_mbFROMinformation_schema.TABLESWHERETABLE_SCHEMADATABASE()ORDERBYDATA_FREEDESC;示例结果TABLE_NAMETABLE_ROWSdata_mbdata_free_mbdevice_log4000050200order_log100002080user500050含义device_log表碎片最大可考虑执行OPTIMIZE TABLE device_log;回收空间。4️⃣ 统计数据库总容量及索引空间SELECTSUM(TABLE_ROWS)AStotal_rows,ROUND(SUM(DATA_LENGTH)/1024/1024,2)ASdata_mb,ROUND(SUM(INDEX_LENGTH)/1024/1024,2)ASindex_mb,ROUND(SUM(DATA_FREE)/1024/1024,2)ASdata_free_mb,ROUND(SUM(DATA_LENGTHINDEX_LENGTH)/1024/1024,2)AStotal_used_mbFROMinformation_schema.TABLESWHERETABLE_SCHEMADATABASE();示例结果total_rowsdata_mbindex_mbdata_free_mbtotal_used_mb75594803032110含义data_mb数据大小index_mb索引大小data_free_mb碎片空间total_used_mb总占用空间数据索引三、运维场景案例案例1数据库容量评估SELECTROUND(SUM(DATA_LENGTHINDEX_LENGTH)/1024/1024,2)ASdb_size_mbFROMinformation_schema.TABLESWHERETABLE_SCHEMAyour_database;用途评估数据库总占用磁盘空间。案例2找出碎片最大的表SELECTTABLE_NAME,ROUND(DATA_FREE/1024/1024,2)ASfree_mbFROMinformation_schema.TABLESWHERETABLE_SCHEMAyour_databaseORDERBYDATA_FREEDESC;用途确定需要执行OPTIMIZE TABLE的表。案例3统计数据库总行数SELECTSUM(TABLE_ROWS)AStotal_rowsFROMinformation_schema.TABLESWHERETABLE_SCHEMAyour_database;用途快速了解数据规模。案例4数据库碎片清理OPTIMIZETABLEtable_name;作用重建表清理碎片释放磁盘空间四、总结SHOW TABLE STATUS直观适合查看单表信息information_schema.TABLES可用于 SQL 聚合统计关键指标指标说明TABLE_ROWS表行数DATA_LENGTH数据大小INDEX_LENGTH索引大小DATA_FREE碎片空间常用 SQL统计行数、碎片空间、数据库容量、碎片表定位运维建议定期巡检、发现碎片执行OPTIMIZE TABLE小技巧可以将这些 SQL 做成每日巡检脚本自动生成容量报表便于容量规划与性能优化。
返回列表