mysql查询性能问题,加了order by速度慢了

关于order by的查询优化可以看一下:

主要介绍了两个方法:

  • 第一个是FORCE INDEX (PRIMARY):这个理解很直白就是强行加索引
  • 第二个是late row lookups,也就是文章的重点,其实就是先构造一个只有id的子查询,然后再join一起。这样极大的提高效率。如下示例代码,o是通过你的表和只有id查询出来的临时字表,l是要join一起包含所有字段的表。
    explain
    SELECT  xx,xxx,....
    FROM    (
            SELECT  id
            FROM    <你的表>
            ORDER BY
                    id
            LIMIT <返回条数的范围>
            ) o 
    JOIN    <你的表> l
    ON      l.id = o.id  
    ORDER BY
            l.id

相关推荐