最近使用mysql,兩表關聯查詢遇到悲催的事,查了些資料了也沒能解決,粉絲用戶表4W多,粉絲標簽表2千多資料,一個查詢下來19秒,受不鳥了。。。 求且高人指路。
wx_fans表中,openid是主鍵,subscribetime是全文關鍵字索引,其他為普通資訊欄位;
wx_fans_tag_r表中,openid是全文關鍵字索引,該表只有倆欄位,openId和tagId(也就是一對多,一個粉絲有多個標簽的意思)
下面是查詢陳述句:
SELECT t.openid, subscribetime,createtime, subscribeStatus, nickname, nicknameStr, gender, country, province, city, headimgurl, STATUS, remark,groupId, r.tagId FROM wx_fans t
LEFT OUTER JOIN wx_fans_tag_r r ON t.openid=r.openid WHERE 1=1
ORDER BY subscribetime DESC
LIMIT 0,20
以下是EXPLAIN sql的結果:

以下是 SHOW INDEX FROM wx_fans的結果:

以下是 SHOW INDEX FROM wx_fans_tag_r的結果:

求指點!!!!
uj5u.com熱心網友回復:
建立兩個索引alter table wx_fans add key(subscribetime, opened);
alter table wx_fans_tag_r add key(opened)
uj5u.com熱心網友回復:
第二個索引不需要 截圖里面顯示就是btree索引
uj5u.com熱心網友回復:
都創建的有啊,仍是很慢很慢。。
uj5u.com熱心網友回復:
第1個索引哪里有?你這個又不是全文檢索,建全文索引干嘛?
uj5u.com熱心網友回復:


后來添加過
uj5u.com熱心網友回復:
join_buffer_size 調大試試uj5u.com熱心網友回復:
加了之后 的執行計劃是怎么樣的?explain select ....
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/102427.html
標籤:MySQL
