0
点赞
收藏
分享

微信扫一扫

mysql大数据量limit很慢问题解决

boomwu 2022-03-12 阅读 188



转载本文章请标明作者和出处 ​


mysql大数据量limit很慢问题解决_java

开始行动,你已经成功一半了,献给正在奋斗的我们


缘起

最近公司在做一个项目,数据库选型为mysql8.0版本,做性能测试的时候王数据的业务表中导入了1088W的数据,然后通过添加索引等手段来进行性能优化,到最后发现当大分页查询的时候,系统慢的一批。具体有多慢,,,

我查第10870000页数据的时候竟然要40多秒。

SELECT id, device_id, device_name, group_name, group_id
, region_id, code, divergence_type, severity, draw_scene_photo
, scene_photo, first_scene_photo, draw_first_scene_photo, type, remark
, time_stamp, first_time_stamp, record_date, rects, alarm_area
FROM kl_alarm_event
WHERE time_stamp BETWEEN 1598889600000 AND 1604159999000
ORDER BY time_stamp DESC
LIMIT 10870000, 10

mysql大数据量limit很慢问题解决_java_02

解决方案

如果我们只查询主键的话,这个查询效率会有很大的提升。

SELECT id
FROM kl_alarm_event
WHERE time_stamp BETWEEN 1598889600000 AND 1604159999000
ORDER BY time_stamp DESC
LIMIT 10870000, 10

只需要4s多

mysql大数据量limit很慢问题解决_java_03

然后我们再通过主键进行查询所有的字段,也只需要0.04s就可以搞定

select * from kl_alarm_event where id in
(9005031,
9011042,
77207,
67287,
61705,
61305,
9026937,
9021750,
28925,
8926267);

mysql大数据量limit很慢问题解决_数据_04

完成一波优化,收工。。。


举报

相关推荐

0 条评论