mysql sql 用in和or的區別

2021-10-06 17:01:23 字數 374 閱讀 4209

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

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的執行效率會有明顯的下降。

MySQL SQL語句和索引優化

索引優化 2.合理使用索引 慢查詢explain關鍵字 子查詢 select from customerinfo where customerid notin select customerid from salesinfo 連線查詢 select from customerinfo left jo...

MySql SQL常用操作 函式 事物和索引

mysql是乙個關係型資料庫管理系統,在開始學習mysql資料庫前,讓我們先了解下rdbms的一些術語 資料庫 database 是按照資料結構來組織 儲存和管理資料的倉庫,每個資料庫都有乙個或多個不同的api用於建立,訪問,管理,搜尋和複製所儲存的資料,資料庫常用操作 1 create datab...

Mysql sql的系統變數和自定義變數

sql的變數 系統變數 是資料庫系統自己提供的 全域性變數global 開啟任何客戶端 都有效 會話變數session 針對乙個會話或一次連線 自定義變數 使用者變數 區域性變數 一 系統變數 說明 變數有系統提供,不是使用者定義,屬於伺服器層面 注意 如果時全域性級別,則需加global,如果是回...