• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • CHECKSUM TABLE语句

    CHECKSUM TABLE tbl_name [, tbl_name] ... [QUICK | EXTENDED]
    

    CHECKSUM TABLE报告表内容的校验和。您可以使用此语句来验证备份,回滚或旨在将数据恢复到已知状态的其他操作前后的内容是否相同。

    该语句需要SELECT该表的特权。

    视图不支持该语句。如果CHECKSUM TABLE针对视图运行,则该Checksum值始终为NULL,并返回警告。

    对于不存在的表,CHECKSUM TABLE返回NULL并生成警告。

    在校验和运算表被锁定了读锁InnoDBMyISAM

    性能考量

    默认情况下,整个表逐行读取,并计算校验和。对于大表,这可能需要很长时间,因此您只会偶尔执行此操作。这种逐行计算是您从EXTENDED子句,InnoDB以及除以外的所有其他存储引擎MyISAM以及MyISAM未由CHECKSUM=1子句创建的表中获得的结果。

    对于MyISAM使用该CHECKSUM=1子句创建的表,CHECKSUM TABLE或者CHECKSUM TABLE ... QUICK返回可以快速返回的“ live ”表校验和。如果表不满足所有这些条件,则该QUICK方法返回NULL。表QUICK不支持该方法InnoDB。有关子句的语法,请参见“ CREATE TABLE语句”CHECKSUM

    校验和值取决于表行格式。如果行格式更改,则校验和也将更改。例如,对于时间类型,如存储格式TIMEDATETIME以及TIMESTAMP前到MySQL 5.6.5在MySQL 5.6改变,因此,如果5.5表升级到MySQL 5.6,校验和的值可能会改变。

    重要

    如果两个表的校验和不同,那么几乎可以肯定,这些表在某种程度上是不同的。但是,由于CHECKSUM TABLE不能保证使用的哈希函数没有冲突,因此,两个不相同的表可能会产生相同的校验和。