ORM框架中的缓存机制和数据库的缓存机制有什么区别?

灰机不会飞2016 2014-09-27 04:42:11
小弟是个新人,最近在学习Hibernate和ibatis的缓存。

我记得学习数据库的时候,比如Oracle,也提到了数据库的缓存机制(当时没看太明白,大概意思好像就是Oracle有个高速缓存区,当我们查询数据的时候首先到这个缓存区去查,如果没有再到数据文件中去查,至于具体实现原理就给忘光光了)

今天看到Ibatis的缓存<cacheModel>,不禁想问问各位大神:这里的缓存机制使用的缓存区是框架自己分配的呢?还是数据库的呢?

本来我理所当然以为应该是ibatis调用数据库的缓存区,毕竟人家是专业做数据库的。

可是今天看到有人说ibatis和Hibernate都是用的自己的缓存区,小弟百思不得其解,只好在这里求助了。
就是想确认一下,以ibatis为例,如果对一个<select>设置了cacheModel,那么在查询数据的时候,首先查询的这个缓存区是数据的缓存区呢?还是框架自己生成的呢?
...全文
814 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
周先生xs 2014-10-24
  • 打赏
  • 举报
回复
Hibernate查询数据会优先从框架本身的缓存查询数据(这个时候还没去访问数据库),Hibernate的缓存会分一级缓存,二级缓存(具体缓存相关请查阅书籍),当Hibernate确认自带缓存中没有所需数据 ,则会通过SQL 查询数据库(SQL的具体执行时间还要看是否延迟加载的配置),这个时候才会用到数据库的缓存 ,然后查询数据库缓存,如果还是没有,再查询数据文件。

25,985

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧