[已解决问题] 关于数据库连接次数的讨论。。。欢迎老赵到来
提问时间: 2008-02-27 09:58
悬赏分:5 浏览:529 次
我需要绑定如下一个列表:
分类a
a产品1  a产品2  a产品3  a产品4
分类b
b产品1  b产品2  b产品3  b产品4
分类c
c产品1  c产品2  c产品3  c产品4
分类d
d产品1  d产品2  d产品3  d产品4

解决方案有两种
解决方案1
第一次先绑定分类列表(一次性从数据库中取出所要的分类)
第二次根据分类去绑定产品(每个分类连接一次数据库)
也就是说解决方案1需要连接5次数据库

解决方案2
只需要一次绑定(一次性取出所有数据,通过比较复杂的代码列出我需要的列表)



上面的这两种方案我都用过,不过我比较偏向于使用解决方案2,因为这样可以减少数据库的连接次数,提高所谓的性能...

如果是你,你会怎么选择?
一个页面,最好不要超过几次的数据库连接?
提问者:ITAres - 初学一级
最佳答案
要注意一个平衡点,如果在有限的类别内,我还是会支持方案一。 你要注意,虽然是会多次连接数据库,一次数据库的操作,最费时也是连接操作,对于查询操作通常都是比较快的。而对于数据库连接,通常情况下都是有连接池的。因此在一个可接受的范畴内,我会选择方案一。这样可以通用化设计。
2008/2/27 10:46:09 回答者:阿不


提问者对于答案的评价:想法跟我一样
其它回答(6)
支持 解决方案2
6个月前   回答者:清風客 - 初学一级
建议使用ORM框架. 一般框架可以做缓存,避免1+N的查询,而开发起来也比手工写复杂的存储过程/Sql简单.
6个月前   回答者:deerchao - 大侠五级
方案1,做好缓存就好了... 产品多吗?不多的话全部取出,缓存,然后在缓存中根据分类id检索
6个月前   回答者:wingoo - 小虾三级
使用过类似的方式,分类不多,一次性读取后缓存
6个月前   回答者:Dove.Net - 初学一级
建议全部取出来放内存缓存就好了,如果修改了数据就重新装载一下.速度决对快.
6个月前   回答者:沙加 - 老鸟四级
在有连接池的情况下两者的性能基本没有差别(也许会有一点点,不过也是微秒级的),在这么微小的性能差别里应该考虑从代码实现简洁性和灵活性下手.
6个月前   回答者:henry - 菜鸟二级
评论
   您需要登录以后才能回答!
 

我要提问

我的问题


快到期问题

> 问题排行榜

相关链接