mysql中in和or的區別是什麼

2022-10-09 15:36:08 字數 818 閱讀 7255

區別:1、in通過父查詢表和子自查詢表作hash連線操作查詢,or是對父查詢表作loop迴圈後再對子查詢表進行查詢;2、在沒有索引或者主鍵的情況下,隨著in或or後面的資料量增多,or的執行效率會有明顯下降,in的執行效率不會明顯下降。

本教程操作環境:windows10系統、mysql8.0.22版本、dell g3電腦。

mysql中in和or的區別是什麼

做資料對比,千萬級別資料

sql語句中 in和or的區別為:來操作不同、適合不同、執行效率不同。

一、操作不同

1、in:in是把父查詢表和子自查詢表作hash連線。

2、or:or是對父查詢表作loop迴圈,每次loop迴圈再對子查詢表進行查詢。

二、適合不同5261

1、in:in適合用於子查詢表資料比父查詢表資料多的情4102況。

2、or:or適合用於子查詢表資料比父查詢表資料少的情況。

三、執行效率不同

1、in:在沒有索引的情況下,隨著in後面的資料量越多,in的執行效率不會有太大的下降。

2、or:在沒有索引的情況下,隨著or後面的資料量越多,or的執行效率會有明顯的下降。

如果in和or所在列有索引或者主鍵的話,or和in沒啥差別,執行計畫和執行時間都幾乎一樣。

如果in和or所在列沒有 索引的話,效能差別就很大了。在沒有索引的情況下,隨著in或者or後面的資料量越多,in的效率不會有太大的下降,但是or會隨著記錄越多的話效能下降 非常厲害

因此在給in和or的效率下定義的時候,應該再加上乙個條件,就是所在的列是否有索引或者是否是主鍵。如果有索引或者主鍵效能沒啥差別,如果沒有索引,效能差別不是一點點!

sql server和mysql的區別是什麼

sql server和mysql的區別是什麼 青燈夜遊青燈夜遊2019 05 11 17 20 30原創 sql server和mysql都是廣泛使用的關聯式資料庫管理系統 rdbms 那麼它們之間有什麼區別?下面本篇文章就來給大家介紹一下sql server和mysql之間區別,希望對你們有所幫助...

php中 a和 a 的區別是什麼?

1 a的用法 首先 a等價於 a a 1,比如 a初始值為1,那麼 a 1 1得出 a為2。a執行過程 先將 a加1,假設結果為x,然後把x賦值給 a,所以 a的值等於x的值。2 a 的用法 以 x a a 2 為例 先將a值賦給變數 x 也就是 x a 然後 a 值加 1 也就是 a a 1 則最...

和 的區別是什麼?

符號一般用來當作佔位符,常使用linux指令碼的同學應該對此有更深的體會吧。既然是佔位符,當然就是被用來替換的。知道了這點就能很容易區分 和 從而不容易記錯了。比如說用 和 傳參的區別,使用 傳入引數是,sql語句解析是會加上 比如 select from table where name 傳入的n...