>此时我的类图就需要把这几万条记录load进内存,然后在把相应广告价格信息也load到内存,通过类之间的协作算出总的价钱,这需要很长的时间。而我用多表关联查询和sql函数可以很快的得到结果。当然,我所说的只是应用中的一例,从中,可以很明显的看出数据库的优势。
因为是两种思维,也就是两个不同世界,或者说两种不同语言,今天你可以举这个具体例子,明天还可以举其他例子,就像你今天指着一个东西说:我知道它的中文是“桌子”,可不知道它的英文是什么?所以,我觉得用“桌子”表示它比较方便。
先回答你这个具体问题,当你用数据库SQL函数查询时,你怎么不知道这几万条记录对数据库服务器不是一个很重的负载呢?如果有几万甚至几十万次个请求这条计算呢?你的数据库吃得消吗?但是你如果使用缓存,将计算结果保存在应用服务器中,那么几万次甚至几十万次的请求就被化解了。
那么就这一次计算相比:是用对象逐个计算还是用SQL函数来查呢?我建议还是用对象逐个计算,将负载拉到对象运行的应用服务器中,这样,这台服务器吃不消时,你可以使用分布式多台服务器来计算,当然,如果某次计算耗费很长时间,你可以抛出一个异步线程专门计算,使用JMS专门来进行计算,多台并行计算。这才是大思路,大架构,这比你成天围着数据库转有扩展性,有发展方向吧?
如果你将这个价格一次计算使用数据库计算,这是躲过了一时,躲不过一世,表面上,应用服务器性能好了,数据库服务器性能也还过得去,那么访问量上升怎么办?倒是成天为了一点性能调校数据库,一台数据库服务器的性能总是有天花板的啊,你能要到多少呢?就象一个人潜力总是有限的,不可能无限的吧?所以,数据库思维总是短视 敷衍了事的思维,就象国有企业员工办事作风一样,这可能也是数据库特别符合中国国情原因所在吧。
你为什么从这里看出数据库的优势,而我没有看到,只看到数据库逆势,所以说:因为你是数据库思维,是结巴表达方式,在你的有色眼中,什么都是红色的。所以,当你觉得数据库有优势时,就要反问自己,真的是这样吗?
虽然看出,你对OO理论很清楚,但是一到动手,又回到数据库思路,没有将两者统一起来,这是中国程序员的通病,说明你们没有经过OO统一教育和培训,OO理论只是业余爱好,没有机会实践,也不知道如何实践,理论和实践严重脱节,这也是传统教育的最大罪过之一。
[该贴被banq于2008-06-16 17:33修改过]
[该贴被banq于2008-06-16 17:38修改过]