开发者社区> 问答> 正文

请教一个mysql问题:查询语句中where时间范围然后加上group by后很慢,该如何优化

是阿里云的mysql,想问问这段sql有没有可优化的空间。。。之前开发都是sqlserver居多,不建索引的情况下,这样的数据应该一瞬间就能查询出来,但是想想又不至于是mysql的性能所致。。。我自己感觉可能是索引的问题,但是各种尝试后还是没有解决,百度了半天也没找出来解决之法,已经困扰我两天了,大家帮帮忙看一下吧,谢谢大家了。

sql如下,跟数据量关系不大, 我试了几十条和几十万条数据,都是要1000ms左右: SELECT a.org_code ,a.org_name , COUNT(1) AS inspectionCar, SUM(a.seat_number) AS inspectionPassenger, COUNT( a.vehicle_id LIKE '鄂%' or null ) AS hubeiCar, SUM( IF(a.vehicle_id LIKE '鄂%', a.seat_number, 0)) AS hubeiCarPassenger FROM t_inspection a force index(index_org) where 1 = 1 and a.created_at between '2020-02-18 11:00:00' and '2020-02-18 12:00:00' GROUP BY a.org_code ORDER BY a.org_code;

索引:

image.png explain:image.png

我遇到了这个问题,刚好在开源中国看到,希望能够得到阿里云官方的回复,请查看

展开
收起
因为相信,所以看见。 2020-05-23 11:54:19 853 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像