In the last episode (Nov 08), Tim Murtaugh said:
> I'm using MySQL server version 4.0.15a in an embedded envirionment
> (as a standalone server, I'm not using the embedded server library).
> I have 128 MB of memory and disk space is tight. I'm using MyISAM
> If my system loses power, some tables are left in a corrupt state. As
> stated in the MySQL documentation, I think the data tables are OK,
> its just that the tables were not closed properly and are considered
> corrupt by MySQL.
> I need a FAST way to determine if a table is corrupt. I've tried
> myisamcheck --fast and --check-only-changed options, and increased
> the buffer sizes (-O key_buffer_size and -O sort_buffer_size), as
> mentioned in the documentation. The fastest time I can achieve is
> I've also tried "CHECK TABLE tablename FAST QUICK" on a table I know
> is marked as corrupt, and the fastest time I can achieve is 6:58.
> I need to detemine if a table is corrupt within a few SECONDS, not
> minutes. How can I do this?
Make your tables smaller? :) You have to check each record to see that
it's okay. If your tables are big, you have to spend time reading
> The documentation says there is a flag in myisam tables that
> indicates when a table is corrupt. Is there a way I can quickly check
> this flag?
If mysql tries to read a record or index and can't, it sets this flag
to keep you from accessing the table until you repair it.
You may be better off using InnoDB tables and taking the
space/performance hit. InnoDB uses a logfile to allow it to roll back
partially-commited transactions after a crash, so you never have to
check or repair your tables.