开发者社区> zhaiwx_yinfeng> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

[MySQL 学习] MySQL5.6 的checkusm

简介:
+关注继续查看

从MySQL5.6.3开始 ,Innodb引入了新的checksum计算方式,checksum算法由新参数 innodb_checksum_algorithm来控制,默认为crc32算法,主要有两种算法,一种是老的计算方法(innodb_checksum_algorithm=innodb),使用这种算法是兼容老版本的MySQL。但如果使用crc32算法,则会无法兼容老版本,因为使用了不同的算法计算checksum,会导致校验page失败。


当设置为none时,则在page中写入一个常量(BUF_NO_CHECKSUM_MAGIC)


另外还有两个值strict_innodb  和strict_crc32  ,当设置为这两个值时,如果该表存在混合的checksum计算方式, 则只根据当前的设置计算一次,而不会使用别的算法计算checksum。

在Percona版本的5.5.18中,也引入了一种快速checksum方法(对应的函数为buf_calc_page_new_checksum_32),由参数innodb_fast_checksum控制,但该参数不影响压缩page的checksum,压缩页单独计算,调用page_zip_calc_checksum


有趣的是,我在innodb status里增加了checksum耗时统计,并让5.5.18支持Percona 本身的fast checksum,发现其居然比老的checksum计算方式耗时要长。当然都在毫秒级别


值得一提的是,CRC32算法由Facebook贡献,具体代码可以在storage/innobase/ut/ut0crc32.cc查阅,算法采用了汇编来提高效率。社区的力量!!


鉴于CRC32和老checksum方式没有特别明显的改善(对于需要频繁I/O,读写Page的情况,效果会稍微明显些),对checksum优化的优先级降低 :-)


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Mysql的CRUD操作
Mysql的CRUD操作
38 0
使用checkstyle来规范你的项目
Checkstyle是什么 自从做了程序员,关于格式化的讨论就不曾中断过,到底什么才是正确的,什么才是错误的,到现在也没有完整的定论。但随着时间发展,渐渐衍生出一套规范出来。没有什么绝对的正确和错误,关键在于规范的定义。
3825 0
Jenkins checkstyle+ant对代码规范进行检测(学习笔记二十八)
1.目标   通过jenkins使用checkstyle对代码进行规范检查并生成html报告。   构建采用shell。 2.环境 checkstyle5.7(如果是Linux版本选用tar.gz格式) apache-ant-1.9.9 ①其他默认环境(如jdk)同前。
1490 0
代码规范检查工具——checkStyle
  简介              Checkstyle是一款检查java程序代码样式的工具,可以有效的帮助我们检视代码以便更好的遵循代码编写标准,特别适用于小组开发时彼此间的样式规范和统一。Checkstyle提供了高可配置性,以便适用于各种代码规范,所以除了可以使用它提供的sun的代码标准外,你也可以定制自己的标准。
3967 0
Checkstyle
CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员遵守某些编码规范的工具。它能够自动化代码规范检查过程,从而使得开发人员从这项重要,但是枯燥的任务中解脱出来。 CheckStyle检验的主要内容 ·Javadoc注释 ·命名约定 ·标题 ·Import语句 ·体积大小 ·空白 ·修饰符 ·块 ·代码问题 ·类设计 ·混合检查(包括一些
889 0
+关注
zhaiwx_yinfeng
MySQL内核开发者, 《高性能MySQL 第三版》译者之一,活跃于MySQL社区,BugList,etc...
224
文章
5
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载