exists與in子查詢優化

sky_cat發表於2019-04-09

exists與in子查詢在資料比較少的時候查詢並不會有太大的問題,但是如果資料一旦很大,查詢起來那麼將會變的非常的慢,甚至會造成查詢超時情況的出現

可以這樣用表關聯去替代exists與in的查詢,提高查詢的效率

例如:

A表的ID可能會出現在B表的名稱為欄位IDS中

現在我們需要查詢A表的ID在B表的IDS欄位的資料

如果用IN 來查詢:SELECT * FROM A表 where ID in(select IDS FROM B表)(效率低)

用表連線來查詢:SELECT A表.*  FROM A表 LEFT OUTER JOIN B表 ON A表.ID=B表.IDS WHERE B表.IDS<>NULL

相關文章