好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > SQL查詢語句優化的實用方法總結

SQL查詢語句優化的實用方法總結

熱門標簽:手機外呼系統違法嗎 南通電銷外呼系統哪家強 桂林云電銷機器人收費 東莞外呼企業管理系統 谷歌地圖標注位置圖解 地圖簡圖標注 沈陽智能外呼系統供應商 清遠申請400電話 如何選擇優質的外呼系統

查詢語句的優化是SQL效率優化的一個方式,可以通過優化sql語句來盡量使用已有的索引,避免全表掃描,從而提高查詢效率。最近在對項目中的一些sql進行優化,總結整理了一些方法。

1、在表中建立索引,優先考慮where、group by使用到的字段。


2、盡量避免使用select *,返回無用的字段會降低查詢效率。如下:

SELECT * FROM t

優化方式:使用具體的字段代替*,只返回使用到的字段。


3、盡量避免使用in 和not in,會導致數據庫引擎放棄索引進行全表掃描。如下:

SELECT * FROM t WHERE id IN (2,3)

SELECT * FROM t1 WHERE username IN (SELECT username FROM t2)

優化方式:如果是連續數值,可以用between代替。如下:

SELECT * FROM t WHERE id BETWEEN 2 AND 3

如果是子查詢,可以用exists代替。如下:

SELECT * FROM t1 WHERE EXISTS (SELECT * FROM t2 WHERE t1.username = t2.username)


4、盡量避免使用or,會導致數據庫引擎放棄索引進行全表掃描。如下:

SELECT * FROM t WHERE id = 1 OR id = 3

優化方式:可以用union代替or。如下:

SELECT * FROM t WHERE id = 1
UNION
SELECT * FROM t WHERE id = 3

(PS:如果or兩邊的字段是同一個,如例子中這樣。貌似兩種方式效率差不多,即使union掃描的是索引,or掃描的是全表)


5、盡量避免在字段開頭模糊查詢,會導致數據庫引擎放棄索引進行全表掃描。如下:

SELECT * FROM t WHERE username LIKE '%li%'

優化方式:盡量在字段后面使用模糊查詢。如下:

SELECT * FROM t WHERE username LIKE 'li%'

 
6、盡量避免進行null值的判斷,會導致數據庫引擎放棄索引進行全表掃描。如下:

SELECT * FROM t WHERE score IS NULL

優化方式:可以給字段添加默認值0,對0值進行判斷。如下:

SELECT * FROM t WHERE score = 0


7、盡量避免在where條件中等號的左側進行表達式、函數操作,會導致數據庫引擎放棄索引進行全表掃描。如下:

SELECT * FROM t2 WHERE score/10 = 9

SELECT * FROM t2 WHERE SUBSTR(username,1,2) = 'li'

優化方式:可以將表達式、函數操作移動到等號右側。如下:

SELECT * FROM t2 WHERE score = 10*9

SELECT * FROM t2 WHERE username LIKE 'li%'


8、當數據量大時,避免使用where 1=1的條件。通常為了方便拼裝查詢條件,我們會默認使用該條件,數據庫引擎會放棄索引進行全表掃描。如下:

SELECT * FROM t WHERE 1=1

優化方式:用代碼拼裝sql時進行判斷,沒where加where,有where加and。

 
其實,總結起來,大家應該也發現了,就是在查詢的時候,要盡量讓數據庫引擎使用索引。而如何讓數據庫按我們的意思去使用索引就涉及到掃描參數(SARG)的概念。在數據庫引擎在查詢分析階段,會使用查詢優化器對查詢的每個階段(如一個帶子查詢的sql語句就存在不同的查詢階段)進行分析,來決定需要掃描的數據量。如果一個階段可以被用作掃描參數,那么就可以限制搜索的數據量,從而一定程度上提高搜索效率。

SARG的定義:用于限制搜索的一個操作,因為它通常是指一個特定的匹配,一個值的范圍內的匹配或者兩個以上條件的AND連接。

所以,我們要讓我們寫的查詢條件盡量能夠讓引擎識別為掃描參數。具體做法,就如前面提到的這些方法。

以上就是小編為大家帶來的SQL查詢語句優化的實用方法總結全部內容了,希望大家多多支持腳本之家~

您可能感興趣的文章:
  • Mysql查詢語句優化技巧
  • 優化MySQL數據庫中的查詢語句詳解
  • mysql優化limit查詢語句的5個方法
  • MySQL對limit查詢語句的優化方法

標簽:貴州 天津 常德 內蒙古 成都 湖州 重慶 臨沂

巨人網絡通訊聲明:本文標題《SQL查詢語句優化的實用方法總結》,本文關鍵詞  SQL,查詢,語句,優化,的,實用,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《SQL查詢語句優化的實用方法總結》相關的同類信息!
  • 本頁收集關于SQL查詢語句優化的實用方法總結的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 顶级肉欲(高H、纯肉故事集| 视频二区欧美| 两个男人互操| 日本公共浴池偷拍事件| 午夜福利伦伦电影理论片在线观看| 99自拍视频在线观看| 亚洲精品美女久久久久99| 婷婷中文网| BT亚洲BT欧美BT日韩| Chinese亂伦ⅩⅩⅩ| 香蕉521av网站永久地址| 日日干狠狠操| 啦啦啦手机免费观看视频4| 好爽?好紧?腿张开自己动| 又粗又深又猛又爽的视频一级毛片| 国产护士一区二区三区| 高h肉辣文公交车系列txt| 欧美一区精品视频一区二区| 国产精品无码亚洲欧美黑寡妇| 美女热舞视频在线观看| 啊啊啊啊好爽视频| 欧美videos另类精品| 教练称情侣倒挂半空系女生太紧张 | 色ed2k| 台湾一级大黄大色毛片| 中国老太性xxxxxhd| 97人妻人人做人人爽人人品视频| 精品?无码?在线观看视频| 色屁屁XXXXⅩ免费视频| 在线观看网站资源免费播放| www.成人网| 妓女丶自慰丶偷窥丶另类| 亚洲精品偷拍一卡不卡二卡| 青青青91草字vip国产线观| 超污视频在线观看| 天堂久久久久va久久久久| 欧美AⅤ无码一区二区三老牛AV| 张肇麟的蜜桃成熟时2的剧情分析| 色爱综合区五月小说| 热血高校1免费高清在线观看| 人人九九精|