原文:SQL 優化關於 or 和 in 的使用區別

突然想總結一下 SQL 里 OR 和 IN 的區別,在翻閱網上很多資料后,根據一位網友的千萬條數據實驗,總結如下: 測試用的數據庫數據為 W條,共分為四組分別測試 A組:分別使用 OR 和 IN 查詢 條數據 B組:分別使用 OR 和 IN 查詢 條數據 C組:分別使用 OR 和 IN 查詢 條數據 D組:分別使用 OR 和 IN 查詢 條數據 實驗開始之前數據庫關閉了Query Cache,因此 ...

2020-06-21 15:16 0 1072 推薦指數:

查看詳情

SQL優化 - 避免使用 IN 和 NOT IN

WHY? IN 和 NOT IN 是比較常用的關鍵字,為什么要盡量避免呢? 1、效率低 項目中遇到這么個情況: t1表 和 t2表 都是150w條 ...

Wed Mar 06 01:30:00 CST 2019 0 6960
SQL優化關於or與in使用

網上有很多人都在談論or與in的使用,有的說二者沒有什么區別,其實不然,估計是測試做的不夠,其實or的效率為O(n),而in的效率為O(log2n),當基數越大時,in的效率就能凸顯出來了。 有人做了這么一組實驗(測試庫數據為1000萬條記錄):A組分別用or與in查詢3條記錄,B組分 ...

Mon Oct 28 17:40:00 CST 2019 0 492
SQL 優化 - explain 的使用

通過關鍵字 explain 可以分析出: 1. 表的讀取順序 2. 表的讀取操作的讀取類型 3. 哪些索引有可能會被使用到 4. 哪些索引被實際使用了 5. 表之間的引用 6. 每張表有多少行被優化器查詢 每個字段的含義: 1. id - id值越大,就越先被MySQL執行,如果id相同 ...

Thu Jul 04 05:36:00 CST 2019 0 532
Oracle Sql優化之Rownum的使用

1.rownum:rownum是一個偽列,需要在數據取出來后,rownum才會有值,因此在分頁查找時,需要進行嵌套查詢。 采用分析函數也是可以實現一次嵌套 但是由於分析 ...

Sat May 30 05:50:00 CST 2015 0 2679
sql優化之union all 和or ,in使用

不要迷信union all 就比 or及in 快,要結合實際情況分析到底使用哪種情況。 對於索引列來最好使用union all,因復雜的查詢【包含運算等】將使or、in放棄索引而全表掃描,除非你能確定or、in會使用索引 對於只有非索引字段來說你就老老實實的用or 或者in,因為 非索引字段 ...

Fri Mar 22 20:25:00 CST 2019 0 1103
sql優化__rownum的使用【轉】

ROWNUM的概念ROWNUM是一個虛假的列。它將被分配為 1,2,3,4,...N,N 是行的數量。一個ROWNUM值不是被永久的分配給一行 (這是最容易被誤解的)。表中的某一行並沒有標號;你不可以 ...

Thu Aug 18 06:14:00 CST 2016 1 8939
SQL優化SQL使用with as 語法

解釋: WITH AS短語,也叫做子查詢部分,定義一個SQL片段后,該SQL片斷可以被整個SQL語句所用到。有的時候,with as是為了提高SQL語句的可讀性,減少嵌套冗余。 示例: 語法: with temp名字 as 查詢語句,temp名字1 as 查詢語句 ...

Thu Nov 25 17:49:00 CST 2021 0 147
SQL優化- 數據庫SQL優化——使用EXIST代替IN

數據庫SQL優化——使用EXIST代替IN 1,查詢進行優化,應盡量避免全表掃描 對查詢進行優化,應盡量避免全表掃描,首先應考慮在 where 及 order by 涉及的列上建立索引 . 嘗試下面的技巧以避免優化器錯選了表掃描: · 使用ANALYZE TABLEtbl_name ...

Fri Aug 18 20:10:00 CST 2017 0 6105
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM