mysql大表优化分享

最近生产上有一张日志表超级大,数据几千万已经统计不出来了,2千万的时候就已经查不动了,而且每天还200w的增长着,现在空间已经占到90g,这个日志还很重要,数据不可以删,而且时不时的进行统计,因为统计的时候统计不动,最开始想的办法是一天一天的统计,刚开始很慢但是能统计出来,现在一天的数据也很难统计了

大表用途:

其他系统通过接口调用本系统给官微推送消息

text字段一:接口报文

text字段二:推送官微消息的报文

text字段三:官微系统响应报文

text字段四:异常信息

分析过程:

1、这张表用4个text字段,用于存报文和响应,错误信息等,这些字段都是必须要的,后来把一天的数据100多万存的临时表中,4个text字段换成varchar(2000)后,查询速度显著提升,27秒变成了6秒,其实text字段不仅占用空间,同时还会增加磁盘io

2、text字段换成varchar(2000)后还不够,毕竟表的数据量在那摆着,不利于维护和统计,所有需要拆表:

最终拆成3张表:

api日志表,调用本系统接口都会记录,这一块是现成的,只需要加注解

send_statistic表:主要做统计使用,主要记录统计用到的一些字段和官微发送结果

send_erro表:如果send_statistic表中发送官微消息失败,就在send_erro中记录一下发送官微的报文和错误信息,并于排查问题

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值