mysql left join 关联查询很慢

jianghuta 2017-12-04 09:58:22
最近使用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的结果:



求指点!!!!

...全文
809 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 2017-12-11
  • 打赏
  • 举报
回复
加了之后 的执行计划是怎么样的? explain select ....
ma100 2017-12-09
  • 打赏
  • 举报
回复
join_buffer_size 调大试试
jianghuta 2017-12-09
  • 打赏
  • 举报
回复
引用 4 楼 zjcxc 的回复:
第1个索引哪里有?
你这个又不是全文检索,建全文索引干嘛?



后来添加过
zjcxc 2017-12-06
  • 打赏
  • 举报
回复
第1个索引哪里有? 你这个又不是全文检索,建全文索引干嘛?
zjcxc 2017-12-05
  • 打赏
  • 举报
回复
建立两个索引 alter table wx_fans add key(subscribetime, opened); alter table wx_fans_tag_r add key(opened)
jianghuta 2017-12-05
  • 打赏
  • 举报
回复
引用 1 楼 zjcxc 的回复:
建立两个索引 alter table wx_fans add key(subscribetime, opened); alter table wx_fans_tag_r add key(opened)
都创建的有啊,仍是很慢很慢。。
rucypli 2017-12-05
  • 打赏
  • 举报
回复
引用 1 楼 zjcxc 的回复:
建立两个索引 alter table wx_fans add key(subscribetime, opened); alter table wx_fans_tag_r add key(opened)
第二个索引不需要 截图里面显示就是btree索引

56,681

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧