jxyuhua的地盘

PHP WEB开发 电子商务

用户操作
[即时聊天] [发私信] [加为好友]
阿华ID:jxyuhua
109875次访问,排名806好友0人,关注者4
jxyuhua的文章
原创 124 篇
翻译 2 篇
转载 8 篇
评论 44 篇
jxyuhua的公告
Dict.CN 在线词典, 英语学习, 在线翻译
最近评论
mohroq:wow gold,
ruikun:为了 这个收录数量,多少个日夜我没睡好觉!哎,谁让咱做seo工作呢?
ruikun:不错,是我经常关注的地方!也希望能在这片田地里看到属于我们初学者的东西!有经验的朋友能讲一下心得,分享一下php的技巧,不但能给予像我等初学者一些走捷径的好处,还能给自己巩固记忆和不断完善的动力!编程,虽然很累,但,我选择,我喜欢!
ruikun:我现在想的是:怎么快速的学习到php的要领!
tenfoon:[Thu Mar 8 16:42:00 2007] [error] PHP Warning: require_once(Zend/Search/Lucene.php) [function.require-once]: failed to open stream: No such file or directory i……
文章分类
收藏
相册
我的简历
我的图片
我的作品
b2c-battery商务网站
Civilianshop(Books,Music,Video,ELectronics)
jess-tour爵士之旅
newsunshine新阳光电子
power198资讯网
reviewdigital数码信息网
Sell Digital cameras
sunpower电池网站
top-batteries.com电池网站
top-battery.cn
友情链接
jxyuhua的地盘
SOL's Blog(RSS)
渡虎谷的爱情故事
益草堂凉茶
钢结构之家
站点链接
PHP PEAR
Smarty Template
存档
软件项目交易
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes

原创 Where条件中字段顺序的重要性收藏

新一篇: 塞翁失马 | 旧一篇: Zend Search Lucene实现全文搜索

在用MySQL查询数据库的时候,连接了很多个用,发现非常慢。例如:

SELECT ... WHERE p.languages_id = 1 AND m.languages_id = 1 AND c.languages_id = 1 AND t.languages_id = 1 AND p.products_id IN (472,474)
这样查询需要20多秒,虽然在各个字段上都建立了索引。用分析Explain SQL一分析,发现在第一次分析过程中就返回了几万条数据:
WHERE p.languages_id = 1 ,然后再依次根据条件,缩小范围。
而我改变一下WHERE 字段的位置之后,速度就有了明显地提高:

WHERE p.products_id IN (472,474) AND
p.languages_id = 1 AND m.languages_id = 1 AND c.languages_id = 1 AND t.languages_id = 1

这样,第一次的条件是p.products_id IN (472,474),它返回的结果只有不到10条,接下来还要根据其它的条件来过滤,
自然在速度上有了较大的提升。

经过实践发现,不要以为WHERE中的字段顺序无所谓,可以随便放在哪,应该尽可能地第一次就过滤掉大部分无用的数据,只返回最小范围的数据。

发表于 @ 2006年09月30日 14:59:00|评论(loading...)|编辑

新一篇: 塞翁失马 | 旧一篇: Zend Search Lucene实现全文搜索

评论

#子鹿 发表于2006-09-30 15:45:00  IP: 218.0.206.*
请问sql server该怎么测试SQL语句效率啊

能介绍几款工具或方法什么的吗
#matt 发表于2006-10-04 19:25:00  IP: 211.96.114.*
恩,有道理哈,又学到一点~
#ruikun 发表于2007-06-23 15:31:03  IP: 211.96.69.*
我现在想的是:怎么快速的学习到php的要领!
发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © jxyuhua