日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 优化代码_MySQL Order by 语句优化代码详解

發布時間:2025/3/8 数据库 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 优化代码_MySQL Order by 语句优化代码详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Order by語句是用來排序的,經常我們會使用到Order by來進行排序,下面我給大家來講講Order by用法與優化排序,有需要的同學可參考

MySQL Order By keyword是用來給記錄中的數據進行分類的。

MySQL Order By Keyword根據關鍵詞分類

ORDER BY keyword是用來給記錄中的數據進行分類的。SELECT column_name(s)

FROM table_name

ORDER BY column_name

例子

SQL創建代碼:CREATE TABLE IF NOT EXISTS mysql_order_by_test (

uid int(10) NOT NULL AUTO_INCREMENT,

name char(80) NOT NULL,

sex tinyint(1) NOT NULL,

KEY uid (uid)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;

INSERT INTO mysql_order_by_test (uid, name, sex) VALUES(1, 'www.jb51.net', 1);

INSERT INTO mysql_order_by_test (uid, name, sex) VALUES(2, '李四', 2);

INSERT INTO mysql_order_by_test (uid, name, sex) VALUES(3, '王二麻子', 1);

通過索引優化來實現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 BYSELECT * FROM [table] WHERE uid=1 ORDER x,y LIMIT 0,10;

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

在某些情況中,MySQL可以使用一個索引來滿足ORDER BY子句,而不需要額外的排序。where條件和order by使用相同的索引,并且order by的順序和索引順序相同,并且order by的字段都是升序或者都是降序。

例如:下列sql可以使用索引。SELECT * FROM t1 ORDER BY key_part1,key_part2,... ;

SELECT * FROM t1 WHERE key_part1=1 ORDER BY key_part1 DESC, key_part2 DESC;

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

但是以下情況不使用索引:①SELECT * FROM t1 ORDER BY key_part1 DESC, key_part2 ASC;

--order by的字段混合ASC和DESC

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

--用于查詢

行的關鍵字與ORDER BY中所使用的不相同

③SELECT * FROM t1 ORDER BY key1, key2;

--對不同的關鍵字使用ORDER BY:

總結

以上是生活随笔為你收集整理的mysql 优化代码_MySQL Order by 语句优化代码详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。