美文网首页
MySQL查询缓存

MySQL查询缓存

作者: 辉_ace | 来源:发表于2019-10-20 14:49 被阅读0次

简介:   

  mysql通过查询缓存优化来优化查询效率,当执行相同的一条sql时,mysql会将数据缓存起来以供下次查询使用。

    查询缓存在mysql中需要手动开启。通过set session query_cache_type=on进行开启。同理,如需关闭,只需要将该参数设置为off即可。

    同时,当开启了查询缓存之后,还需设置数据库分配给缓存空间的大小,默认值为0。即缓存不生效。通过 set  @@global.query_cache_size=具体值进行设置。 如需永久生效,则修改my.cnf文件,添加query_cache_size=具体值

  对于查询缓存的使用,在实际工作中需要关注表的特性。如果说当前表中数据会经常发生改变的话,则不建议开启查询缓存,因为当表数据被改变之后,查询缓存中的相关数据就会被清空。因为查询缓存适合使用在会被频繁查询但基本不会被改变的表。

提高缓存命中率:

  1)保证客户端与服务端编码一致。如果两端编码不一致可能会导致数据不会被缓存。

  2)sql语句的编写虽然本身是不区分大小写的。但对于缓存来讲,相同但大小写不同的sql会被当作两条语句。

  3)当sql中包含用户自定义函数、自定义变量、存储函数、临时表这些由不同用户执行,会产生不同结果的查询,查询缓存不会对结果进行缓存。

  4)通过分区表提升缓存命中率。日常工作中,我们经常会碰到一个场景,对于一张表中某个时间段会频繁更新,但是其他时间段会频繁查询。如对该表采用查询缓存,则当表中数据发生更新,就会清空查询缓存。对于这种情况可以采用分区表。把频繁查询的时间段数据放入一个分区表中,以此提高命中率。

查询缓存的利弊:

  查询缓存虽然能够提升查询效率,但是也会造成一定的系统资源损耗。首先,mysql在查询的时候,首先会在查询缓存中判断当前是否存在相同的结果。其次,在进行查询的时候,如果缓存中没有相同的查询结果,会将结果先放入缓存。最后,如果表发生数据修改,查询缓存会被会将相应的结果进行删除。

查询缓存优化:

  1)尽量使用多张小表。

    2)写操作尽量一次性写入,否则会造成查询缓存产生数据清理。

  3)尽量对sql或某个连接设置是否使用查询缓存。

  4)如果当前应用存在大量数据更新,则最好不要开启查询缓存。

相关文章

  • MySQL学习——查询缓存

    MySQL查询缓存简介 MySQL查询缓存是MySQL将查询返回的完整结果保存在缓存中。当查询命中该缓存,MySQ...

  • (8)MySQL性能优化的最佳21条经验(未完待续)

    1.为查询缓存优化你的查询 某些查询语句会让MySQL不使用缓存。 MySQL的查询缓存对这个函数不起作用。像...

  • MySQL数据库性能优化

    MySQL架构 查询缓存 查询缓存(Query Cache)原理: 缓存SELECT操作或预处理查询的结果集和SQ...

  • 查询缓存

    查询缓存原理 mysql查询缓存保存完整的查询结果,当查询命中缓存时,立刻返回结果,跳过了解析,优化和执行阶段。 ...

  • Mysql查询优化

    查询缓存 1.可以使用如下的语句来判断MySQL是否开启了查询缓存功能: 2.如果想查看MySQL是否是读取的缓存...

  • mysql查询缓存

    MySQL 的查询缓存是MySQL 内置的一种缓存机制,可以针对 sql 进行缓存。 1.query_caceh_...

  • MySQL查询性能优化总结

    MySQL查询性能优化总结 查询执行路径 客户端发送一条查询给MySQL服务器 服务器先检查缓存,如果命中了缓存,...

  • MySQL查询缓存

    简介: mysql通过查询缓存优化来优化查询效率,当执行相同的一条sql时,mysql会将数据缓存起来以供下...

  • Mysql 查询优化

    如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据。缓存在第一次查询后,MySQL便将查询语句以及...

  • MySQL多表查询及子查询

    1. MySQL数据库执行查询操作时的查询流程: 请求-->查询缓存请求-->查询缓存-->解析器-->预处理器-...

网友评论

      本文标题:MySQL查询缓存

      本文链接:https://www.haomeiwen.com/subject/vdfamctx.html