• mysql高性能第三版读书笔记6


    查询缓存,MySQL判断缓存是否命中的方法很简单:缓存存放在一个引用表中,通过哈希值引用,哈希值包含如下因素:查询本身,当前要查询的数据库,客户端协议版本等,MySQL不会解析,格式化或者参数化查询,而是直径使用SQL语句或客户端发送过来的原始信息,任何字符上的不同,空格,注释都会导致缓存不命中。查询缓存会对读和写操作带来消耗,读查询在开始之前会先检查是否命中缓存,如果读查询可以被缓存,那么完成之后,MySQL发现没有缓存,则会将结果放入缓存,也有系统消耗,当写入数据时,MySQL将对应表的所有缓存置为失效,这时如果缓存很大,或者碎片很多,也会有系统消耗,对查询缓存操作是排他操作,有系统消耗,查询缓存失效的操作有全局锁,导致整个系统僵死。通过设置参数query_cache_min_res_unit查询缓存大小,申请空间快比较慢,所以不易太小,容易导致多长申请,也不能过大,因为如果查询结果只需要很小一部分空间,容易导致浪费,没用完的空闲空间会产生碎片。通过设置参数query_cache_type打开查询缓存,query_cache_size设置查询缓存的总内存空间,这个值必须是1024的整数倍,设置query_cache_min_res_unit设置查询缓存内存快的最小单位,query_cache_limit设置查询缓存的最大查询结果。innodb让所有加锁操作的事务都不使用查询缓存。查询缓存优化,批量写入时只做一次查询缓存失效,相比单条插入效率高,但是不要做延迟写操作,导致性能问题。

  • 相关阅读:
    联合金投P9办公自动化解决方案[1]
    协同软件不是万能钥匙:看清协同软件的边界
    天剑OA系统解决方案[1]
    怡康OA办公自动化解决方案
    联合金投P9办公自动化解决方案[1]
    天路协同办公管理系统解决方案[1]
    泛微协同商务系统办公自动化解决方案
    DCI.Indi.Office4.0 OA解决方案(集团企业版)
    新思创OA办公自动化解决方案
    福州世纪通OA办公自动化系统方案[1]
  • 原文地址:https://www.cnblogs.com/nizuimeiabc1/p/12862776.html
Copyright © 2020-2023  润新知