mysql百万数据 查总数都特别慢_mysql百万级数据分页查询缓慢优化方法

当遇到MySQL查询百万级数据时,传统的分页方法会导致性能问题。本文介绍了与产品协商修改需求,比如去除总数统计,以及优化SQL查询语句的方法,如子查询优化法、倒排表优化法和反向查找优化法,以提高分页查询效率。
摘要由CSDN通过智能技术生成

参考网址1:https://www.cnblogs.com/nightOfStreet/p/9647926.html           -------------修改需求

一、与产品商讨 修改需求

后端工程师,在接到分页list需求的时候,内心是这样的

画面是这样的

fe61532ceffb57a69c7ab4c7eeec59f0.png

代码大概是这样的select count(id) from …       查出总数

select * from …. limit m,n    查出分页数据

和前端的交互是这样的你传给我查询条件和pageNum、pageSize

我给你返回total、resultList

恩,可以开始预估开发时间了

结果出来的时候是这样的

e566dc9f69a799bacc3656b1cbf09d94.png

在点击后面几页的时候发现数据加载很慢。不好,一开始没想到数据量是这个级别的,慢SQL监控已经开始预警

定位到原因有两个

select count(*) 总量会扫全表

limit m,n 当偏移量m很大的时候,查询每次都要先扫到m条满足条件的记录

其他人一定也遇到过这个问题,打开百度还没开始搜索就找到了一个解决方案,百度是这样

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值