美文网首页MySQL
59-MySQL索引优化与查询优化-LIMIT

59-MySQL索引优化与查询优化-LIMIT

作者: 紫荆秋雪_文 | 来源:发表于2022-11-03 15:02 被阅读0次

    一、LIMIT优化

    一般分页查询时,通过创建覆盖索引能够比较好的提高性能。一个常见又非常头疼的问题就是LIMIT 20000000, 10,此时需要MySQL排序前20000010 记录,仅仅返回20000000 ~ 20000010 的记录,其他记录丢弃,查询排序的代价非常大

    • SQL
    EXPLAIN
    SELECT *
    FROM student
    LIMIT 2000000, 10;
    
    • EXPLAIN image.png

    二、优化思路一

    在索引上完成排序分页操作,最后根据主键关联回原表查询所需要的其他列内容

    • SQL
    EXPLAIN
    SELECT *
    FROM student t,
         (SELECT id FROM student ORDER BY id LIMIT 2000000,10) a
    WHERE t.id = a.id;
    
    • EXPLAIN image.png

    三、优化思路二

    该方案适用于主键自增的表,可以把Limit 查询转换成某个位置的查询

    • SQL
    EXPLAIN
    SELECT *
    FROM student
    WHERE id > 2000000
    LIMIT 10;
    
    • EXPLAIN image.png

    相关文章

      网友评论

        本文标题:59-MySQL索引优化与查询优化-LIMIT

        本文链接:https://www.haomeiwen.com/subject/erletdtx.html