文章推荐:J2EE提高性能的两大方向Cluster和Cache

这两者又是紧密结合在一起的,特别是分布式Cache,可以大大地提供计算性能,Cache is King!

目前,在数据库系统中,很多人的思维还是集中在数据库性能提升上,如何使用专用数据库语言,如何使用存储过程,甚至有的论坛软件直接数据库层编写,这些都是单纯的“向下思维”,把活向细处做,这种思维其实已经落后。

使用缓存Cache,多台分布式Cache,将数据库数据放在内存中,既做到程序的数据库操作通用性,不以来具体数据库产品,又具有可拓展性和伸缩性。这才是一种新的向上思维,性能提升方向。


文章:
http://www.theserverside.com/tt/articles/article.tss?l=DB_Break
[该贴被admin于2008-10-06 17:52修改过]

都来搞proceducer其实还是好的
最怕看到一个项目,又来数据库级的,又在程序里面写
都不知道业务逻辑在哪...

数据层不一定非要用某种具体编程语言来实现,存储过程也可以看做是一种接口,而且它也提供了对不同编程语言的支持(好像 PHP,ASP, Perl 都是支持存储过程的调用吧~~),所以在我看来,它也是数据层的一种封装。

不要说论坛软件直接面向数据库,我们有一些实时系统也是直接操作数据库的。而且经过测试,证明这样的效率更加高。

Oracle 在数据库优化方面有更多的经验。我相信 Oracle 做的优化会比我个人做的要强,所以像 Cache 这样的处理,Oracle 是肯定会考虑的。

对Banq 说的在应用层(如果我没理解错,应该是指的 应用层 吧) Cache 数据的做法也是不错的做法,因为它可以独立于数据库之上做到很好的弹性。但是 Cache 这东东要是处理得不好也会带来很多麻烦。特别是对数据实效性要求比较高的地方,就更要做好 cache 的更新机制。

本主题是2003年的一篇讨论,再贴一篇2001年的国外关于集群的文章,现在是2008,很多人都无法接受国外2001年提出的概念:

集群新世界The new world of clustering
http://www.adtmag.com/article.aspx?id=5752&
文章中指出,集群是对象集群,并命名为Object cluster design pattern。