公司有2个系统 A和B 某天领导要求将A的上游系统对接到B的中间系统,主要对接订单,库存,商品资料
但是A和B都是产品型系统,只买了使用权没有源码开发,各自都有一套标准api
于是变成了 A <-> 我们开发的平台 <-> B
因为业务上A和B的接口并不是直接能接上的
所以我需要将所有接口的数据都存到接口日志表上
使用了多个text类型字段,为了方便检索数据,又加了全文索引 上线后发现每天的库存同步日志接近30w,于是开启了每天凌晨定时删除2天前的数据
本来以为这样就万事大吉,结果使用了几个月后数据库变得很卡
系统运维人员发现数据库ibd文件变得特别大,占用了将近70g
深入了解之后发现是因为删除日志表后索引文件并不会清除,于是一直累加,索引也就越来越慢
解决方式:使用命令
OPTIMIZE TABLE 表名
进行优化
这个操作会锁表,请在业务系统可以接受短暂停用的情况下使用
操作完成后
索引文件减少到几百兆666