免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2101 | 回复: 1
打印 上一主题 下一主题

请帮我看看2条SQL到底差在哪?谢谢! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-03-29 01:15 |只看该作者 |倒序浏览
1。select v.* from video v,video_tag vt,tag t
where t.tag_id=vt.tag_id and v.video_id=vt.video_id
and t.name like '%test%' and v.video_state='4' and v.audit_flag='1';


1 | SIMPLE      | v     | ref    | PRIMARY,indx_video       | indx_video  | 9       | const,const               | 36055 | Using where |
|  1 | SIMPLE      | vt    | ref    | unique_vtag,index_tag_id | unique_vtag | 4       | videoCommunity.v.video_id |     1 | Using index |
|  1 | SIMPLE      | t     | eq_ref | PRIMARY                  | PRIMARY     | 4       | videoCommunity.vt.tag_id  |     1 | Using where |

一般来说执行2秒

2。select v.* from video v   join  
(select vt.* from video_tag vt  ,tag t where t.tag_id=vt.tag_id and t.name like '%test%' )
tt on v.video_state='4' and v.audit_flag='1' and v.video_id=tt.video_id


1 | PRIMARY     | <derived2> | ALL    | NULL               | NULL         | NULL    | NULL                    |    53 |                          |
|  1 | PRIMARY     | v          | eq_ref | PRIMARY,indx_video | PRIMARY      | 4       | tt.video_id             |     1 | Using where              |
|  2 | DERIVED     | t          | index  | PRIMARY            | unique_tag   | 767     | NULL                    | 31109 | Using where; Using index |
|  2 | DERIVED     | vt         | ref    | index_tag_id       | index_tag_id | 4       | videoCommunity.t.tag_id |     2 |           

一般只要0.05秒

但是从explain中看不出到底差在哪里?

但是事实确实要快。 不知道各位有什么看法!

论坛徽章:
0
2 [报告]
发表于 2007-03-29 11:48 |只看该作者

....

看的一头雾水,index都建在哪列上了?
只看出来上下两条sql的select范围定义的不同
不知道你的表是什么样子的,你是怎么测试它们的速度的?
因为单从你的 explain看,应该是下边的时间更长才对啊..
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP