每个MyISAM索引文件(.MYIfile)的头部都有一个计数器,可以用来检查一个表是否已经正确关闭。CHECK TABLE如果您从或
        myisamchk收到以下警告
        ,则表示此计数器已不同步:
      
clients are using or haven't closed the table properly此警告并不一定意味着该表已损坏,但您至少应该检查该表。
计数器的工作原理如下:
- 第一次在 MySQL 中更新表时,索引文件标头中的计数器会递增。 
- 在进一步更新期间,计数器不会更改。 
- 当表的最后一个实例关闭时(因为执行了 - FLUSH TABLES操作或因为表缓存中没有空间),如果表在任何时候已更新,则计数器会递减。
- 当你修表或检查表,发现没问题时,计数器被重置为零。 
- 为避免与可能检查表的其他进程的交互出现问题,如果计数器为零,则计数器不会在关闭时递减。 
换句话说,只有在这些情况下,计数器才会变得不正确:
- 无需先发出and - MyISAM即可复制表。- LOCK TABLES- FLUSH TABLES
- MySQL 在更新和最终关闭之间崩溃了。(该表可能仍然没问题,因为 MySQL 总是对每个语句之间的所有内容发出写入。) 
- 一个表在被mysqld使用的同时被myisamchk --recover或myisamchk --update-state修改。 
- 多个mysqld服务器正在使用该表,并且一个服务器在另一个服务器正在使用的表上执行 - REPAIR TABLE或操作- CHECK TABLE。在此设置中,使用 是安全的- CHECK TABLE,尽管您可能会收到来自其他服务器的警告。但是,- REPAIR TABLE应该避免这种情况,因为当一台服务器用新文件替换数据文件时,其他服务器不知道这一点。- 通常,在多个服务器之间共享数据目录不是一个好主意。有关更多讨论,请参阅第 5.7 节,“在一台机器上运行多个 MySQL 实例”。