国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL Order by 語句用法與優化詳解

2024-07-24 12:38:07
字體:
來源:轉載
供稿:網友

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

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

MySQL Order By Keyword根據關鍵詞分類.

ORDER BY keyword是用來給記錄中的數據進行分類的.

代碼如下:

  1. SELECT column_name(s)  
  2. FROM table_name  
  3. ORDER BY column_name 

例子,SQL創建代碼:

  1. CREATE TABLE IF NOT EXISTS mysql_order_by_test ( 
  2.   uid int(10) NOT NULL AUTO_INCREMENT, 
  3.   name char(80) NOT NULL
  4.   sex tinyint(1) NOT NULL
  5.   KEY uid (uid) 
  6. ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ; 
  7.  
  8. INSERT INTO mysql_order_by_test (uid, name, sex) VALUES(1, 'm.survivalescaperooms.com', 1); 
  9. INSERT INTO mysql_order_by_test (uid, name, sex) VALUES(2, '李四', 2); 
  10. 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 BY,代碼如下:

SELECT * 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可以使用索引,代碼如下:

  1. SELECT * FROM t1 ORDER BY key_part1,key_part2,... ; 
  2. SELECT * FROM t1 WHERE key_part1=1 ORDER BY key_part1 DESC, key_part2 DESC;   --Vevb.com 
  3. 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:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 改则县| 墨江| 吉隆县| 宁阳县| 新和县| 思南县| 绥化市| 易门县| 盱眙县| 通江县| 句容市| 盘山县| 扎鲁特旗| 惠州市| 壶关县| 宣城市| 广平县| 曲麻莱县| 天津市| 苏尼特右旗| 梁河县| 南昌市| 杂多县| 衡阳市| 深水埗区| 济源市| 于田县| 科技| 象山县| 苍山县| 原阳县| 怀安县| 南部县| 湖州市| 山丹县| 五河县| 增城市| 咸阳市| 河源市| 双流县| 三台县|