各路英雄,帮忙优化下sql,在线等,速度最快的给分

horacexu1982 2013-12-12 10:15:58
高手,能否帮我优化下面sql查询,表格如下
BeginLog表如下

CompletLog表如下


这二个表通过qqid和matchID作为关联键值,也就是qqid和matchID是唯一性。现在想找到比赛场次数量,matchType(比赛类型)为0的,gameEndType(比赛结束代码)为0的,比赛人次数量。

我写得sql如下:
1. select count(*) from BeginLog,CompletLog where BeginLog.qqid=CompletLog.qqid and BeginLog.matchID=CompletLog.qqid and BeginLog.matchType=0 and CompletLog.gameEndType=0;
耗费3min 43.84sec

2. select count(*) from BeginLog join CompletLog on BeginLog.qqid=CompletLog.qqid and BeginLog.matchID=CompletLog.qqid where BeginLog.matchType=0 and CompletLog.gameEndType=0;
耗费3min 7.33sec

...全文
129 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rotel-刘志东 2013-12-12
  • 打赏
  • 举报
回复
create index idx_name on BeginLog(qqid); create index idx_name1 on CompletLog(qqid); create index idx_name2 on beginlog(matchid) create index idx_name3 on completlog(matchid)
iihero 2013-12-12
  • 打赏
  • 举报
回复
语句不用变,把qqid, matchID, matchType, gameEndType都建上索引,再试试
horacexu1982 2013-12-12
  • 打赏
  • 举报
回复
在线等,等到下午四点,速度最快的sql获得分数哈。如果速度一样,先回复的人得分。
ACMAIN_CHM 2013-12-12
  • 打赏
  • 举报
回复
create index xx1 on BeginLog(qqid,matchID,matchType); create index xx1 on CompletLog(gameEndType,qqid);
horacexu1982 2013-12-12
  • 打赏
  • 举报
回复
贴了呀,就那二个图片
引用 4 楼 rucypli 的回复:
现有的建表结构帖下
rucypli 2013-12-12
  • 打赏
  • 举报
回复
现有的建表结构帖下

56,687

社区成员

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

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