91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL中怎么利用索引優化ORDER BY排序語句

發布時間:2021-07-24 16:35:55 來源:億速云 閱讀:162 作者:Leah 欄目:數據庫

MySQL中怎么利用索引優化ORDER BY排序語句,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

1、ORDER BY的索引優化。如果一個SQL語句形如:

SELECT [column1],[column2],…. FROM [TABLE] ORDER BY [sort];

在[sort]這個欄位上建立索引就可以實現利用索引進行order by 優化。

2、WHERE + ORDER BY的索引優化,形如:

SELECT [column1],[column2],…. FROM [TABLE] WHERE [columnX] = [value] ORDER BY [sort];

建立一個聯合索引(columnX,sort)來實現order by 優化。

注意:如果columnX對應多個值,如下面語句就無法利用索引來實現order by的優化

SELECT [column1],[column2],…. FROM [TABLE] WHERE [columnX] IN ([value1],[value2],…) ORDER BY[sort];

3、WHERE+ 多個字段ORDER BY

SELECT * FROM [table] WHERE uid=1 ORDER x,y LIMIT 0,10;

建立索引(uid,x,y)實現order by的優化,比建立(x,y,uid)索引效果要好得多。

MySQL Order By不能使用索引來優化排序的情況

* 對不同的索引鍵做ORDER BY :(key1,key2分別建立索引)

SELECT * FROM t1 ORDER BY key1, key2;

* 在非連續的索引鍵部分上做ORDER BY:(key_part1,key_part2建立聯合索引;key2建立索引)

SELECT * FROM t1 WHERE key2=constant ORDER BY key_part2;

* 同時使用了ASC 和 DESC:(key_part1,key_part2建立聯合索引)

SELECT * FROM t1 ORDER BY key_part1 DESC, key_part2 ASC;

* 用于搜索記錄的索引鍵和做ORDER BY 的不是同一個:(key1,key2分別建立索引)

SELECT * FROM t1 WHERE key2=constant ORDER BY key1;

* 如果在WHERE和ORDER BY的欄位上應用表達式(函數)時,則無法利用索引來實現order by的優化

SELECT * FROM t1 ORDER BY YEAR(logindate) LIMIT 0,10;

特別提示:

1>mysql一次查詢只能使用一個索引。如果要對多個字段使用索引,建立復合索引。

2>在ORDER BY操作中,MySQL只有在排序條件不是一個查詢條件表達式的情況下才使用索引。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永城市| 贺兰县| 襄垣县| 平乐县| 天长市| 镇赉县| 宜春市| 宁波市| 疏附县| 东源县| 鄂托克前旗| 扎兰屯市| 大化| 睢宁县| 嘉黎县| 新巴尔虎左旗| 额尔古纳市| 中宁县| 平乡县| 资阳市| 通渭县| 铁岭县| 公安县| 宜阳县| 桂东县| 禹城市| 临沭县| 黑龙江省| 奈曼旗| 铁力市| 元江| 贡觉县| 辉县市| 舟山市| 大方县| 磐安县| 山阳县| 三门县| 西贡区| 胶南市| 同心县|