MySQL的 order by 工作原理( 二 )

  • 取下一条符合条件的记录,重复 2 3 的操作,直至不符合条件或者达到 1000 条为止;

  • MySQL的 order by 工作原理

    文章插图
     
    从联合索引看来,我们是可以不用排序操作了,那么我们是否可以直接通过 索引就直接返回结果呢?也就是不要回表操作 。答案是有的,那就是覆盖索引 。
    alter table user_info add index idx_city_user_age(city, name, age);当执行查询语句时,不仅 name 中的字段是有序的,并且 索引中已经包含了结果集中的所有字段,过程如下:
    1. 从 (city, name,age)索引中获取到第一个 city='上海' 的记录,并取出 name city age 的值作为结果集的一部分直接返回;
    2. 取下一条符合条件的记录,重复 1 2 的操作,直至不符合条件或者达到 1000 条为止;

    MySQL的 order by 工作原理

    文章插图
     


    推荐阅读