首页 新闻 会员 周边 捐助

关于数据库连接次数的讨论。。。欢迎老赵到来

0
悬赏园豆:5 [已解决问题] 解决于 2008-02-29 09:06
我需要绑定如下一个列表:<br>分类a <br>a产品1&nbsp; a产品2&nbsp; a产品3&nbsp; a产品4<br>分类b<br>b产品1&nbsp; b产品2&nbsp; b产品3&nbsp; b产品4<br>分类c<br>c产品1&nbsp; c产品2&nbsp; c产品3&nbsp; c产品4<br>分类d<br>d产品1&nbsp; d产品2&nbsp; d产品3&nbsp; d产品4<br><br>解决方案有两种<br>解决方案1<br>第一次先绑定分类列表(一次性从数据库中取出所要的分类)<br>第二次根据分类去绑定产品(每个分类连接一次数据库)<br>也就是说解决方案1需要连接5次数据库<br><br>解决方案2<br>只需要一次绑定(一次性取出所有数据,通过比较复杂的代码列出我需要的列表)<br><br><br><br>上面的这两种方案我都用过,不过我比较偏向于使用解决方案2,因为这样可以减少数据库的连接次数,提高所谓的性能...<br><br>如果是你,你会怎么选择?<br>一个页面,最好不要超过几次的数据库连接?
ITAres的主页 ITAres | 初学一级 | 园豆:107
提问于:2008-02-27 09:58
< >
分享
最佳答案
0
要注意一个平衡点,如果在有限的类别内,我还是会支持方案一。 你要注意,虽然是会多次连接数据库,一次数据库的操作,最费时也是连接操作,对于查询操作通常都是比较快的。而对于数据库连接,通常情况下都是有连接池的。因此在一个可接受的范畴内,我会选择方案一。这样可以通用化设计。
阿不 | 小虾三级 |园豆:665 | 2008-02-27 10:46
其他回答(6)
0
支持 解决方案2
known | 园豆:163 (初学一级) | 2008-02-27 10:25
0
建议使用ORM框架. 一般框架可以做缓存,避免1+N的查询,而开发起来也比手工写复杂的存储过程/Sql简单.
deerchao | 园豆:8367 (大侠五级) | 2008-02-27 10:44
0
方案1,做好缓存就好了... 产品多吗?不多的话全部取出,缓存,然后在缓存中根据分类id检索
wingoo | 园豆:1513 (小虾三级) | 2008-02-27 10:57
0
使用过类似的方式,分类不多,一次性读取后缓存
PENGHAO-X | 园豆:20 (初学一级) | 2008-02-27 12:24
0
建议全部取出来放内存缓存就好了,如果修改了数据就重新装载一下.速度决对快.
沙加 | 园豆:3680 (老鸟四级) | 2008-02-28 16:22
0
在有连接池的情况下两者的性能基本没有差别(也许会有一点点,不过也是微秒级的),在这么微小的性能差别里应该考虑从代码实现简洁性和灵活性下手.
henry | 园豆:205 (菜鸟二级) | 2008-02-28 16:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册