MySQLのINDEXが壊れる件について

  • 投稿日:
  • カテゴリ:

普通のSQLを発行するとINDEXが壊れて、自動リペアなども出来なくなります。
エラーログには日本語訳すると「自動でリペアしようとしたけど失敗しちゃった!!テヘッ」と書かれてます。
おのれ~・・・。こんなトラブルは初めてだ・・。

Got error 124 from storage engine  / ERRORNo:1030

MySQL5.0.33(ソースからビルド)で確認しました。
やり方は以下の通りで。

CREATE TABLE TEST(N1 INTEGER, N2 INTEGER);
CREATE INDEX IDX_TEST_01 ON TEST(N1,N2);
INSERT INTO TEST(N1,N2)
SELECT 1,(SELECT MAX(N2)+1 FROM TEST WHERE N1 = 1);

INDEXを貼っていなければ問題はありません。
また、INSERT文中のSELECTの1列目の"1"と2列目のWHERE句中の"1"が異なる場合も問題ありません。2列目のSELECT MAX(N2)がSELECT COUNT(N2)でも問題ありません。2列目のSELECT MAX文で1件でもHITすれば問題ありません。

酷い目にあった・・・。
MySQL5.0.37ではエラーにはなるものの、INDEXが壊れることはない感じです。

くそう・・・。ピンポイントですか(´・ω・)ぷんぷん

新しいサイトもよろしくお願いします!