我有一個查詢,看起來像這裏/在這裏有用嗎?
SELECT to_number FROM sent_texts
WHERE to_number NOT IN(SELECT mobile FROM action_6_members);
A,其中應用到結果集
後完成查詢。
什麼會影響被(提高/降級)如果子查詢中包含
WHERE mobile = to_number
具有被施加到結果期間查詢設定
。
什麼會的效果(提高/降級)如果子查詢中包含
HAVING mobile = to_number
什麼都只是使用原始查詢的優點/缺點?
更新
看來我最初的想法是錯誤的,這要歸功於Bill Karwin's answer。
所以我會更新這與原始查詢的解釋。
此查詢導致我的服務器使用100%的cpu。
也許有人可以說爲什麼,以及如何解決它?
id select_type table type possible_keys key key_len ref rows Extra 2 DEPENDENT SUBQUERY action_6_members index mobile 42 179218 Using where; Using index 1 PRIMARY sent_txts index to_number 123 256066 Using where; Using index
這是基於講解關閉連接(在一些更優化)
id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE sent_txts index to_number 78 256066 Using index 1 SIMPLE action_6_members index mobile 27 179218 Using where; Using index; Not exists
對它們運行'explain plan'並比較結果。 – 2010-10-14 00:17:57