mysql分页优化

本文探讨了MySQL分页查询的性能问题,并提供了四种不同类型的SQL查询,包括全字段查询、仅选择主键和外键、基于子查询的优化以及使用BETWEEN操作符的方法。实验结果显示,通过减少返回字段、利用索引以及优化查询方式,可以显著提升分页查询的效率。对于大型系统,使用框架和ORM可能不再适用,需要更精细化的SQL优化策略。
摘要由CSDN通过智能技术生成

参考:mysql分页优化

大家都知道分页肯定会用到这两种类型的sql:

(1) select count(*) from table where 条件
(2) select * from table where 条件 (页码数-1)*每页数
当数据量一大(几百w),不管你是用什么存储引擎,这两种sql都会很恶心了。

对于第一种:
我表示无解,如果你单表几百万、几千万,即使走覆盖索引也要很长时间,带了where条件,无论是MYISAM还是INNODB都会全表扫描,如果你对结果并不是非要精确,走cache吧,因为被坑了很多次,所以我坚持分表处理,尽量保持单表不过百万。

对于第二种:
(1)首先当然是建立索引了,让查询结果在索引中进行;
(2)只返回需要的自动
(3)先获取到offset的id后,再直接使用limit size来获取数据。
随便创建了一张表,插了一百万的数据
[sql]  view plain copy
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值