中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

溧阳市| 邳州市| 叶城县| 滨海县| 普兰店市| 塘沽区| 尼玛县| 湛江市| 榆树市| 尖扎县| 惠安县| 旺苍县| 克什克腾旗| 定边县| 连城县| 巫山县| 扶风县| 房山区| 上虞市| 黄石市| 邵阳县| 惠州市| 云龙县| 昂仁县| 陆良县| 青川县| 红安县| 合肥市| 新巴尔虎左旗| 新田县| 都昌县| 福贡县| 鄢陵县| 察哈| 澄江县| 宝丰县| 介休市| 丘北县| 霍邱县| 台北县| 怀宁县|