大家都知道对象持久化技术中的缓存机制是为了提高系统的性能 ??怎么去理解和实现(高分求助高手)
大家都知道对象持久化技术中的缓存机制是为了提高系统的性能 比如说象数据的脏读 脏读 应该不存在这个问题
(应该有,hibernate缓存如何清除就是个问题)
当一个对象持久化将数据库读取后 并将数据保存进缓存中 当第二次读取数据时 它就直接去缓存中取数据了
这点没错吧
但是如果在第二次读取数据之前 我用另一种方式改变了数据库中的数据 但对象持久化的DD并不知道的话 它就不会去同步数据库 会不会出现这一个情况??
------解决方案--------------------会,应该避免用其他方法更新数据库.
------解决方案--------------------这涉及了一个数据库数据有变动时缓存是否应该马上刷新的问题,如果数据的即时性是十分重要的话,那么每次数据库数据的更新都应该触发相对应的缓冲刷新(这个逻辑当然是由代码控制的),并于此数据被访问时自动重新载入缓存。如果数据的即时性并不是那么重要的话可忽略这个问题,缓存超时自行刷新。
前者在保证数据即时性的时候可最大限度地减少数据库的反复读取操作,后者可更大地降低数据库压力,但是一定程度上牺牲数据的即时性
------解决方案--------------------mark!
------解决方案--------------------如果你的系统实时性很重要的话,那么就不要用缓存,因为在这种情况下对提高性能的可用性就不大了,付出的代价也是不小的,而且还加了一步烦琐的过程,B/S在实时性怎么样也比不上C/S的,如果你做的是银行系统、证券系统或售票系统的话请你慎重考虑,hibernate这东西个人认为,小系统用了显不出优势,大系统用了烦的事多得是