Each MyISAM index file
          (.MYI file) has a counter in the header
          that can be used to check whether a table has been closed
          properly. If you get the following warning from
          CHECK TABLE or
          myisamchk, it means that this counter has
          gone out of sync:
        
clients are using or haven't closed the table properly
This warning doesn't necessarily mean that the table is corrupted, but you should at least check the table.
The counter works as follows:
The first time a table is updated in MySQL, a counter in the header of the index files is incremented.
The counter is not changed during further updates.
              When the last instance of a table is closed (because a
              FLUSH
              TABLES operation was performed or because there
              is no room in the table cache), the counter is decremented
              if the table has been updated at any point.
            
When you repair the table or check the table and it is found to be okay, the counter is reset to zero.
To avoid problems with interaction with other processes that might check the table, the counter is not decremented on close if it was zero.
In other words, the counter can become incorrect only under these conditions:
              A MyISAM table is copied without first
              issuing LOCK TABLES and
              FLUSH
              TABLES.
            
MySQL has crashed between an update and the final close. (Note that the table may still be okay, because MySQL always issues writes for everything between each statement.)
A table was modified by myisamchk --recover or myisamchk --update-state at the same time that it was in use by mysqld.
              Multiple mysqld servers are using the
              table and one server performed a
              REPAIR TABLE or
              CHECK TABLE on the table
              while it was in use by another server. In this setup, it
              is safe to use CHECK TABLE,
              although you might get the warning from other servers.
              However, REPAIR TABLE
              should be avoided because when one server replaces the
              data file with a new one, this is not known to the other
              servers.
            
In general, it is a bad idea to share a data directory among multiple servers. See Section 5.7, “Running Multiple MySQL Servers on the Same Machine”, for additional discussion.


User Comments
Add your own comment.