1
我的查詢似乎與http://dev.mysql.md/doc/refman/5.1/en/in-subquery-optimization.html中的示例非常相似,但不幸的是,本手冊中的收據不適用於我。如何優化MySQL中的IN子查詢?
當我分開運行,內部和外部的查詢使用索引,但是當我運行整個查詢,外部查詢掃描整個表...
的mysql>解釋選擇SMSID FROM SMSDelivery WHERE SMSID IN( SELECT SMSID FROM SMS WHERE phoneNumber的= '123456' OR FROMUSER = '5678p' OR TOUSER = '5124p')\ G變
*************************** 1. row ***************************
id: 1
select_type: PRIMARY
table: SMSDelivery
type: index
possible_keys: NULL
key: FK75C784D70BE5EC9
key_len: 4
ref: NULL
rows: 1337017
Extra: Using where; Using index
*************************** 2. row ***************************
id: 2
select_type: DEPENDENT SUBQUERY
table: SMS
type: unique_subquery
possible_keys: PRIMARY,phoneNumber,fromUser,toUser
key: PRIMARY
key_len: 4
ref: func
rows: 1
Extra: Using where
2 rows in set (0.00 sec)
非常感謝你 - 內部聯接使用索引,而不是表掃描! – Vitaly 2010-11-07 19:40:32
您也可以使用'EXISTS'而不是'IN' – gkalikapersaud 2016-12-16 17:58:40