鍍金池/ 問答/數(shù)據(jù)庫  HTML/ 關(guān)于帶where條件的mysql 分頁優(yōu)化中聯(lián)合索引的使用

關(guān)于帶where條件的mysql 分頁優(yōu)化中聯(lián)合索引的使用

假如table表有聯(lián)合索引(sex, id)
同時(shí)id本身是主鍵
那么下面這個(gè)sql走索引嗎?

select * from table where sex='m' order by id limit 1000000,10

我的感覺是,根據(jù)sql執(zhí)行順序
應(yīng)該是先執(zhí)行from table where sex='m',篩選出結(jié)果集,然后再去order by id吧,這樣感覺就不會(huì)走索引了
所以必須要

select * from table in (select id from table where sex='m' order by id limit 1000000,10)

這樣嗎?

回答
編輯回答
吢丕

不用EXPLAIN,發(fā)帖子問?

2017年8月24日 01:06
編輯回答
冷溫柔

(1)SQL 語句執(zhí)行順序:
SELECT

 FROM          --1
    WHERE    --2
      GROUP BY   --3
        HAVING      --4
           ORDER BY  --5
           

(2) 如果select 只查詢索引字段,order by 索引字段會(huì)用到索引,要不然就是全表排列;
(3) 如果有where 條件,比如where sex='m' order by id 這樣order by 也會(huì)用到索引!

2017年3月9日 07:40