关于查询缓存的一个思考

Posted 走出自己的未来

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于查询缓存的一个思考相关的知识,希望对你有一定的参考价值。

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

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

  相同点:

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

  不同的:

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

以上是关于关于查询缓存的一个思考的主要内容,如果未能解决你的问题,请参考以下文章

讨论过后而引发对EF 6.x和EF Core查询缓存的思考

讨论过后而引发对EF 6.x和EF Core查询缓存的思考

缓存 MySQL 查询

关于头文件定义的一点思考

关于后台系统自动生成的一点思考

关于后台系统自动生成的一点思考