指标一,表的状态:

指标二,表的实际行数:76986
指标三,要清理的行数:76813
指标四,表查询的执行计划:

下面是执行 DELETE FROM courier_consume_fail_message WHERE created_at < '2023-04-19 00:00:00'; 后的统计。
指标一,表的状态:

指标二,表的实际行数:173
指标三,要清理的行数:0
指标四,表查询的执行计划:

通过指标四可以看到,清理表记录后,查询扫描的行数依然没变:8651048。
下面是执行 OPTIMIZE TABLE courier_consume_fail_message; 后的统计。
指标一,表的状态:

指标四,表查询的执行计划:

通过指标四可以看到,清理表记录后,查询扫描的行数变成了 100。
可以看到,该表的数据行数和数据长度都被清理了,查询语句扫描的行数也减少了。
为了提升 SELECT * FROM courier_consume_fail_message WHERE service='courier-transfer-mq'; 语句的查询效率,还是应当建立索引。
alter` `table` `ec_courier.courier_consume_fail_message ``add` `index` `idx_service(service);
到此这篇关于MySQL清理数据并释放磁盘空间的实现示例的文章就介绍到这了,更多相关MySQL 清理数据并释放磁盘空间内容请搜索一聚教程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持一聚教程网!
不想手写重复代码?用 Apifox 一键生成多语言 SDK 和类型定义
如何把接口测试塞进 CI CD 流水线?用 Apifox CLI 自动跑测试
既有 HTTP 又有 Dubbo 和 gRPC?中移互联网如何一套工具搞定多协议
测试步骤多被限频了?用私有化 Runner 跑大规模并发测试
接口文档写得太乱?如何用 Apifox 自动检测 API 规范
小米路由器增强版怎么设置网速(小米路由器增强版网速设置方法)