4

我们可以通过使用 infinispan 或 ehcache/terracotta 的二级缓存轻松加速休眠应用程序,...但 ibatis 只有一个简单的接口来实现缓存。hibernate 知道更多关于数据的信息,所以它也有助于更好的缓存。另一方面,ibatis 的简单性也是它的强大之处,如果我们不为两者都使用缓存,它比 hibernate 更快。

我的问题是;如果我使用带有二级缓存的hibernate和带有缓存实现的ibatis3作为其接口,哪个将是数据访问层更快的候选者?

干杯,

4

1 回答 1

4

快不是一般的品质,性能必须结合上下文来考虑。

一个好的方法似乎是:

  1. 代码足够快,足够高效,您在整个应用程序中需要的许多查询。尽早完成该阶段,因为您的代码速度很快,您不会使用棘手的技术来提高性能。
  2. 找出 1% 的查询速度不够快、经常调用等,因此它们占总时间最多(仅考虑真正用户正在等待的查询)。
  3. 花足够的时间优化这个(你有这个时间是因为你在第一阶段获得了时间)。您可以如此快速地使用事物,以至于您不会在全局范围内考虑它们(内存缓存、本机 SQL、数据库过程......)。
  4. 回到 2 直到你用完时间,或者你的用户感到满意。
于 2009-11-14T18:17:03.830 回答