作者 主題: 不等於的 SQL 優化  (閱讀 2682 次)

0 會員 與 1 訪客 正在閱讀本文。

HaWay

  • 大隻佬!
  • 老人組
  • 俺是博士!
  • *****
  • 文章數: 3972
    • 檢視個人資料
不等於的 SQL 優化
« 於: 2015-08-05 10:04 »
請問一下我有三個欄位 A, B, C

假設我要找出 B 不等於 C 的, 用如下 SQL : select * from table where B <> C, 效率上應是比較低?

是否有建議的 Schema 設計方式或是優化的 SQL 語法?

謝謝
« 上次編輯: 2015-08-05 10:10 由 HaWay »
我做人那麼 nice, 肯定有什麼誤會.....

asako

  • 活潑的大學生
  • ***
  • 文章數: 221
    • 檢視個人資料
Re: 不等於的 SQL 優化
« 回覆 #1 於: 2015-08-08 05:41 »
方式一:先建 一個  multi-column index b 跟 c 。然後 explain 一下 query 看有無用到index。
方式二:各建一個 index b 跟 c 把 query 改成(MYSQL 語法)
select a.* from table a left join table b on a.b=b.c where b.c is null
union all
select a.* from table a left join table b on a.c=b.b where b.b is null



HaWay

  • 大隻佬!
  • 老人組
  • 俺是博士!
  • *****
  • 文章數: 3972
    • 檢視個人資料
Re: 不等於的 SQL 優化
« 回覆 #2 於: 2015-08-10 14:38 »
感謝,  ;D

我找時間試試.
我做人那麼 nice, 肯定有什麼誤會.....