首页
登录 | 注册

关于查询缓存的一个思考

  近期在兼任公司DBA时,某同事问了一个问题,说咱们数据库中有没有开启查询缓存啊。这个问题比较常见,在涉及到数据查询优化时,这个问题就得需要考虑了。

  事后,我又想了一下这个问题,就说项目中是否需要对数据库开启查询缓存?使用过HIbernate或mybatis的都应该知道,在这两个持久层框架中,都存在查询缓存。那么他们有什么区别与联系呢

  相同点:

    数据库的查询缓存和持久层框架中的查询缓存,他们的作用都是一样的,第一次执行某语句的查询时,会将该语句的查询结果缓存下来,当第二次同样的语句进行查询时,不需要再次执行sql,只需从缓存中获取即可,提高了查询效率。

  不同的:

    数据库查询缓存是可以减少语句查询,优化了一些查询上的性能,但是我们程序连接数据库却并没有减少。也许是基于这一点,持久层框架加入了查询缓存的功能,这样当第二次执行相同sql语句时,不再请求数据库连接,直接从缓存中获取数据,这样减少了很多连接数据库的开销。



2020 jeepxie.net webmaster#jeepxie.net
10 q. 0.008 s.
京ICP备10005923号