SQL 查詢效率

2021-05-25 04:44:39 字數 847 閱讀 3697

其他意見:

1、like語句是否屬於sarg取決於所使用的萬用字元的型別

沒意見,%開頭的話會走索引掃瞄或表掃瞄

2、or 會引起全表掃瞄

錯了,or只是不能使用左右兩邊謂語的聯合索引,對於類似於"a=1 or b=2"這樣的條件,應該在a和b上單獨建索引

3、非操作符、函式引起的不滿足sarg形式的語句

沒什麼意見,極少數情況下mssql會神奇的走索引查詢。

4、in 的作用相當與or

in和or的作用不同,這裡說的「相當」應該只是批雙方作用的交集,也就是"a in (1,2,3)"和"a=1 or a=2 or a=3"這樣的

5、盡量少用not

該用還是要用。。。。。

6、exists 和 in 的執行效率是一樣的

你可以用你們公司的大表試試,至少我的經驗是絕對不一樣。

7、用函式charindex()和前面加萬用字元%的like執行效率一樣

沒意見8、union並不絕對比or的執行效率高

不是union而是union all。union有排序和去重,慢的要死。

9、字段提取要按照「需多少、提多少」的原則,避免「select *」

沒意見,只有幾種極端情況需要考慮用*,比如某天才設計出的乙個所有列名長度都超過200的表。。。。。

10、count(*)不比count(字段)慢

意義不同,字段不是非空的話可能結果不同。

11、order by按聚集索引列排序效率最高

非聚集索引如果包含所有查詢需要的列和聚集索引效率一樣。

12、高效的top

沒什麼意見,不過最新一樣實驗證明,row_number分頁和top分頁效率是一樣的。

SQL查詢效率的討論

對於資料庫來說,查詢是資料庫的靈魂,那麼sql查詢效率究竟效率如何呢?下文將帶對sql查詢的相關問題進行討論,供您參考。乙個百萬級別的基本資訊表a,乙個百萬級別的詳細記錄表b,a中有個身份證id,b中也有身份id 先要找出a中在b的詳細記錄。s1 select b.from a inner join...

sql 如何提高SQL查詢的效率?

如何提高sql查詢的效率?原創猴子聊人物 發布於2019 10 31 21 00 00 閱讀數 11195 收藏 展開 題目 我們公司的資料量非常大,需要的不僅僅是提取資料,要了解sql方案優化的。一般在寫sql時需要注意哪些問題,可以提高查詢的效率?解題思路 資料量大的情況下,不同的sql語句,消...

提高sql查詢效率速成寶典

一 建立索引是提高查詢效率最直接的方式.1 表的主鍵 外來鍵必須有索引 2 資料量超過1000的表建議新增索引 3 經常與其他表進行關聯的表,在連線欄位上應該建立索引 4 經常出現在where子句中的字段,特別是大表的字段,應該建立索引 5 作為order by 條件的字段,也可以考慮新增索引 6 ...