数据库cache机制的问题

把数据库中的内容放在内存cache中可以加快读性能,我的问题是:
cache一般是在数据库服务器上,还是在app server上呢?

prevayler是一个数据库的cache么?

一般来说,cache是在应用层实现还是db层实现呢

一般数据库有自己的cache,有些appserver有自己的cache。这些cache与应用无关。你仍然可以设立自己的cache(与应用有关的cache)。

>cache一般是在数据库服务器上,还是在app server上呢
如果放在数据库服务器上,那么负载能力就集中在数据库服务器上,那么巨大访问量情况下,你的数据库服务器是否能承载?使用集群数据库服务器?目前好像只有Oracle有,Oracle只是暂时现象。

放在app server上才是可伸缩的解决方案,将负载转移到app server上,相当转移到中间层,中间层可以通过缓存CLuster技术实现集群,这种集群产品非常多,EJB是一种,可选择范围很多。

我们需要的是一个Open的方案,过分倚重数据库的时代已经随着多层结构中间件的来临而结束,正好Oracle在上海陆家嘴举办会议,这算是最后的黎明吧,Oracle试图利用其在数据库的影响,推广其J2EE多层结构产品。

其实Oracle的J2EE真的不错,比Hibernate早的Toplink在其手中吧,它的J2EE app server确实不错。