记一次mysql优化过程

       虽然开发这么多年,但是在数据库的优化上,我一直算是个小白,这次mysql的优化过程记录一下,对于别人来说可能很简单,对于我来说,也是一次学习过程。

       数据库使用的是mysql,目前数据也比较多,有上亿条的数据了,用户一直反映查询比较慢,之前一直没时间,这次花了几天时间来定位和优化。一开始就盲目的增加索引,删除索引,发现作用不大,开始查资料,学习explain分析,并了解其中的原理。

      第一个优化,应该是sql语句,语句本身并不复杂,主要就是分页条件查询,条件有两个,staId和time,一开始是直接查询,太慢,百度资料后,修改为先查询满足条件的主键id,再根据主键id查询数据,快了不少。

       第二个优化,优化索引。第一步优化后,当查询的数据量很大时,仍然很慢,继续百度。看到一遍文章,发现索引是讲究顺序的,比如我的索引之前是index(time, staId),但是我的查询语句是“WHERE station_id=12 AND TIME >= 1632381001 AND TIME <= 1640157001”,于是将索引修改为index(staId, time),这一下,查询无比丝滑,从30s+下降到不到1s,成就感爆棚。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值