Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  Problems from Tables Not Being Closed Properly

18.2.4.2 表未正确关闭的问题

每个 MyISAM 索引文件 (.MYI 文件) 在头部都有一个计数器,可以用来检查表是否正确关闭。如果您从 CHECK TABLEmyisamchk 中收到以下警告,这意味着该计数器已经失去同步:

clients are using or haven't closed the table properly

这并不一定意味着表已经损坏,但您至少应该检查表。

计数器的工作方式如下:

  • 第一次更新 MySQL 表时,索引文件头部的计数器将被递增。

  • 在后续更新中,计数器不会被更改。

  • 当最后一个表实例被关闭时(因为执行了 FLUSH TABLES 操作或因为表缓存中没有足够的空间),如果表曾经被更新过,计数器将被递减。

  • 当您修复表或检查表并发现一切正常时,计数器将被重置为零。

  • 为了避免与其他进程的交互问题,该计数器在关闭时不会被递减,如果它曾经为零。

换言之,计数器只能在以下情况下变得不正确: