SQL基礎(七) or和in的使用

2022-04-29 13:03:08 字數 515 閱讀 5270

網上有很多人都在談論or與in的使用,有的說二者沒有什麼區別,其實不然,估計是測試做的不夠,其實or的效率為o(n),而in的效率為o(log2n),當基數越大時,in的效率就能凸顯出來了。

有人做了這麼一組實驗(測試庫資料為1000萬條記錄):a組分別用or與in查詢3條記錄,b組分別用or與in查詢120條記錄,c組分別用or與in查詢500條記錄,d組分別用or與in查詢1000條記錄.

第一種情況,目標列為主鍵的情況,4組測試執行計畫一樣,執行的時間也基本沒有區別。第二種情況,目標列為一般索引的情況,4組測試執行計畫一樣,執行的時間也基本沒有區別。第三種情況,目標列沒有索引的情況,4組測試執行計畫就不一樣,執行的時間也有了很大的區別。結論:

in和or的效率,取決目標條件列是否有索引或者是否是主鍵,如果有索引或者主鍵效能沒啥差別,如果沒有索引,in的效能要遠遠優於or.

---------------------

原文:

sql使用基礎

select from tablename limit i,n tablename 表名 i 為查詢結果的索引值 預設從0開始 當i 0時可省略i n 為查詢結果返回的數量,offset i與n之間使用英文逗號 隔開 limit n 等同於 limit0,n for instance 查詢10條資料...

SQL 基礎 NEW VALUE 的使用

sql 基礎 new value 的使用 通常的使用方法為 column column name new value var name new value是將所獲得的列值賦予到變數名,然後該變數名可以參與後續處理 下面演示new value的用法 usr1 orcl define length 15...

SQL 基礎 NEW VALUE 的使用

sql 基礎 new value 的使用 通常的使用方法為 column column name new value var name new value是將所獲得的列值賦予到變數名,然後該變數名可以參與後續處理 下面演示new value的用法 usr1 orcl define length 15...