sql查询优化,二分法得到的灵感

sql查询优化,二分法得到的灵感

Ezra
2021-08-13 / 0 评论 / 174 阅读 / 正在检测是否收录...

最近公司有一个项目进行二开,涉及到百万级sql数据查询,每个设备每分钟插入一条数据,仅仅过了几个月数据量就达到了500万,之前写的数据查询接口速度已经近乎瘫痪,一个接口需要8分钟才将其调完,在尝试升级RDS数据库配置后,得到了改善(39秒)但仍不理想,然后想到之前大学读到过二分法查找数据,思来想去为什么二分查找法不能用在MySQL呢?经过上网查阅资料,利用此原则对接口进行了改造使得接口降低效率大大提升相应数据响应速度低至3.4秒.
下面开始实战:
由于插入的数据都会有一个自增的主键,那么在查找条件的语句中加入id >= xxx,xxx代表你第一个查询的数据的id,这样会使你的sql查询不会从第一条开始查会节省很大一部分时间!

//id大于xxx是指数据从id=xxx开始查,会显著提升查询效果
        return Data::where('id','>',$aa)->whereBetween('created_at',[$arr['start_time'],$arr['end_time']])->where('mach_number',$mach_number)->get();
0

评论 (0)

取消