1.bug#64170
根据bug#64170的描述,一个page在读入内存时就已经计算了一次checksum:
buf_page_get_gen
|–>buf_read_page   (buf0buf.c:2543)
->buf_read_page_low
->buf_page_io_complete
->buf_page_is_corrupted
->page_zip_calc_checksum
2612     case BUF_BLOCK_ZIP_PAGE:
2613     case BUF_BLOCK_ZIP_DIRTY

|–> success = buf_zip_decompress(block, srv_use_checksums);
在函数buf_zip_decompress中,当设置了innodb_checksums时(对应内部变量srv_use_checksums),则在需要先计算比比较checksum,然后才会调用page_zip_decompress解压。
也就是说,对于一个page,总共进行了两次checksum,第二次明显是多余的。在MySQL5.6.7也已经移除了第二次checksum。
PerformanceInnoDB: This fix removes redundant checksum validation on InnoDB pages. The checksum was being verified both when a compressed page was read from disk and when it was uncompressed. Now the verification is only performed when the page is read from disk. (Bug #14212892, Bug #64170)
根据Facebook的Mark Callaghan的测试,获得了5%的QPS提升。
.
.
2.bug#64715
在函数buf_LRU_free_block中,对于压缩page,即使是非脏页,也会去计算checksum,facebook为其增加了一个参数来控制,为false表示禁止这种行为,只checksum脏页
当buffer pool较小时,free list一般为空,这时候当需要从磁盘读取一个page后,就得从lru上驱逐一个block。因此会频繁的调用到buf_LRU_free_block
对于只读查询,这会减少一些CPU开销(简单的测试,很明显的usr cpu 从13%降到12%)

[MySQL 优化] 移除多余的checksum相关推荐

  1. MySQL优化配置之query_cache_size

    原理 MySQL查询缓存保存查询返回的完整结果.当查询命中该缓存,会立刻返回结果,跳过了解析,优化和执行阶段.  查询缓存会跟踪查询中涉及的每个表,如果这写表发生变化,那么和这个表相关的所有缓存都将失 ...

  2. MySQL优化学习总结

    MySQL 性能优化的最佳20多条经验分享 http://www.jb51.net/article/24392.htm 今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关 ...

  3. Mysql 优化的一些要点

    本文是学习<高性能 Mysql>中关于 Mysql 中查询优化需要注意的一些要点的总结: Schema 和数据类型优化 尽量避免使用 NULL 值,尤其存在索引时,因为如果 NULL 列是 ...

  4. MySQL 优化 —— EXPLAIN 执行计划详解

    引言 本博客大部分内容翻译自MySQL 官网 Understanding the Query Execution Plan 专题.另外有一些补充,则来自于网课以及<高性能MySQL(第三版)&g ...

  5. mysql优化要点_你需要掌握的 Mysql 优化的一些要点

    本文是学习<高性能 Mysql>中关于 Mysql 中查询优化需要注意的一些要点的总结: Schema 和数据类型优化尽量避免使用 NULL 值,尤其存在索引时,因为如果 NULL 列是索 ...

  6. MySQL 优化思路与工具

    MySQL 优化思路与工具 1 优化思路 2 连接--配置优化 第一个环节是客户端连接到服务端,连接这一块有可能会出现什么样的性能问题? 有可能是服务端连接数不够导致应用程序获取不到连接.比如报了一个 ...

  7. 4 个 MySQL 优化工具 AWR,帮你准确定位数据库瓶颈!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:今日头条,作者:老王谈运维 www.toutiao.com/ ...

  8. 8.2.1.2 How MySQL Optimizes WHERE Clauses MySQL 优化WHERE 子句

    8.2.1.2 How MySQL Optimizes WHERE Clauses MySQL 优化WHERE 子句本节讨论优化用于处理WHERE子句, 例子是使用SELECT 语句,但是相同的优化应 ...

  9. awr报告分析 mysql_4个MySQL优化工具,帮你准确定位数据库瓶颈!

    作者:老王谈运维原文:https://www.toutiao.com/a6691523026984370699/ 对于正在运行的mysql,性能如何,参数设置的是否合理,账号设置的是否存在安全隐患,你 ...

最新文章

  1. 两个形状不同的长方形周长_借助思维导图玩转小学阶段三种不同计算图形周长的方法!...
  2. 有关架构图你需要了解的基础知识
  3. The Code Commandments: Best Practices for OCCoding
  4. css 中的伪类选择器before 与after
  5. uap连接oracle,UAP环境初始化操作手册Oralce版.pdf
  6. cordova 实现网页缓存_如何解决ionic,cordova混合开发的app缓存大的问题
  7. UVA 11584—— Partitioning by Palindromes
  8. android glu,我可以使用glu与Android NDK
  9. 分布式资本沈波:未来区块链杀手级应用将出现在“+区块链”
  10. 重置gitlab管理员密码
  11. k均值聚类算法优缺点_聚类算法之——K-Means算法
  12. 内部曝料——博文年会之《武林外传》
  13. shell time 计算
  14. windows下软件定时自动重启
  15. Linux 二进制分析
  16. 双网卡内外网同时使用
  17. android实现菜单侧滑栏,Android侧滑-RecyclerView轻松实现高效的侧滑菜单
  18. redis通过key模糊搜索_redis key模糊查找
  19. E18-D80NK拆解
  20. 现代OpenGL教程 02——贴图

热门文章

  1. MS10-002紧急补丁将在美国太平洋时间上午10点左右发布
  2. DNS 学习笔记之5- DNS区域详解
  3. 火星云分发全网视频_火星云矿总裁商思林:三大引擎点燃2020年超级牛市,挖矿和理财将成为资产配置必选项...
  4. layui导入模板数据_layui表格-template模板的三种用法
  5. jquery页面加载ajax请求,jquery ajax 加载页面
  6. kafka基本管理操作命令
  7. 常用函数式接口之Predicate
  8. 登录业务介绍(单点登录)
  9. SpringAOP概念
  10. 循环控制_continue语句