MySQL高階知識 小表驅動大表

2021-09-25 02:31:32 字數 399 閱讀 1183

當b表的資料集必須小於a表的資料集時,用in優於exists

select * from a where id in(select id from b)
當a表的資料集小於b表的資料集時,用exists優於in

select * from a where exists (select 1 from b where b.id = a.id)
注意:a表與b表的字段應建立索引。

select ... from table where exists(subquery)
該語法可以理解為:將主查詢的資料,放到子查詢中做條件驗證,根據驗證結果(true 或 false)來決這【下主查詢的資料結果是否得以保留

mysql 大表 驅動 MySQL小表驅動大表

在了解之前要先了解對應語法 in 與 exist。in後的括號的表示式結果要求先輸出一列字段。與之前的搜尋字段匹配,匹配到相同則返回對應行。mysql的執行順序是先執行子查詢,然後執行主查詢,用子查詢的結果按條匹配主查詢。exist後的括號裡則無輸出要求,exist判斷後面的結果集中有沒有行,有行則...

MySQL高階知識(十六) 小表驅動大表

前言 本來小表驅動大表的知識應該在前面就講解的,但是由於之前並沒有學習資料批量插入,因此將其放在這裡。在查詢的優化中永遠小表驅動大表。類似迴圈巢狀 for int i 5 如果小的迴圈在外層,對於資料庫連線來說就只連線5次,進行5000次操作,如果1000在外,則需要進行1000次資料庫連線,從而浪...

MySQL 小表驅動大表

小表驅動大表 準備兩站表 create table student id int 11 notnull,no varchar 20 default null name varchar 20 default null primary key id engine innodb default chars...