sql order by與索引之間的關係(where條件出現欄位才有效)
阿新 • • 發佈:2018-12-14
ORDER BY 通常會有兩種實現方法,一個是利用有序索引自動實現,也就是說利用有序索引的有序性就不再另做排序操作了。另一個是把結果選好之後再排序。 用有序索引這種,當然是最快的,不過有一些限制條件,來看下面的測試。 測試資料:student表有兩個欄位id ,sid ,id是主鍵。一共有20W條記錄,id從1到200000,sid也是從1到200000的資料。 第一種情況 : order by的欄位不在where條件也不在select中 select sid from zhuyuehua.student where sid < 50000 order by id; 第二種情況 : order by的欄位不在where條件但在select中。 select id,sid from zhuyuehua.student where sid < 50000 order by id;