I\'m used to PostgreSQL and don\'t understand this behaviour on MySQL.
This table (from SugarCRM) has 3057 rows:
mysql> SELECT count(*) FROM task
Generally MyISAM table format is very reliable but tables can sometime get corrupted for various reasons like Hardware failures, mysqld process is killed while a write operation is underway, untimely shutdowns or bugs in the MySQL or MyISAM code. If you're using a very old version then bugs are likely.
Before repairing it is recommended that you backup. To repair
REPAIR [NO_WRITE_TO_BINLOG | LOCAL] TABLE
tbl_name [, tbl_name] ...
[QUICK] [EXTENDED] [USE_FRM]