MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む

このページは機械翻訳したものです。

16.2.4.1 MyISAM テーブルの破損

MyISAM のテーブルフォーマットは、きわめて信頼性の高いフォーマットです (SQL ステートメントが行うテーブルに対するすべての変更は、そのステートメントが戻る前に書き込まれます) が、それでも次の状況が発生した場合、テーブルが破損するおそれがあります。

テーブルが破損した場合の典型的な兆候は、次のとおりです。

MyISAM テーブルのヘルスを CHECK TABLE ステートメントを利用して確認でき、破損した MyISAM テーブルを REPAIR TABLE を利用して修復できます。 mysqld が動作していない場合は、myisamchk コマンドを利用してテーブルを確認したり修復したりすることもできます。 セクション13.7.3.2「CHECK TABLE ステートメント」セクション13.7.3.5「REPAIR TABLE ステートメント」、およびセクション4.6.4「myisamchk — MyISAM テーブルメンテナンスユーティリティー」を参照してください。

テーブルが頻繁に破損する場合は、その原因を突き止めるようにしてください。 最も重要なことは、予期しないサーバー終了の結果としてテーブルが破損したかどうかです。 エラーログの最新の restarted mysqld メッセージを探すと、簡単に検証できます。 このようなメッセージがある場合、テーブルの破損はサーバーのダウンによる可能性が高くなります。 そうでなければ、破損は通常作業の最中に起きた可能性があります。 これはバグです。 問題点を明らかにする再現可能なテストケースを作成するべきです。 セクションB.3.3.3「MySQL が繰り返しクラッシュする場合の対処方法」およびセクション5.9「MySQL のデバッグ」を参照してください。