Mysql INNODBテーブルのキーを無効にすると(インデックス作成の一時停止)、その設定はどのくらい続きますか?
次のようなクエリの場合:
ALTER TABLE users DISABLE KEYS;
スクリプトの最後にキーが再度有効になりますか?または、インデックスを明示的にオンに戻すまでキーは持続しますか?
Fine Manual (読む価値がある)は、対応するALTER TABLE ... ENABLE KEYS
ステートメントが実行されるまで、そのステートメントの効果が持続することを示唆しています。
実際には、ALTER TABLE ... DISABLE KEYSおよびALTER TABLE ... ENABLE KEYSは機能しません!!!!
私はいくつかの追加の調査を行い、InnoDBの母会社であるInnoBase Oy(Oracle Borgで7 of 9になる前)から、これが実際にそうであることがわかりました。
このリンクは、DISABLE KEYSと外部キーを一緒に無効にすることを推奨しています。両方は不要だと思いますが、これは明らかに誰かのために機能しました。
UPDATE 2011-07-18 12:35 EDT
MySQLに残された悪を明らかにするので、これは非常に良い質問です。 mysqldumpプログラムは、作成の前後のDISABLE KEYSおよびENABLE KEYSを盲目的に削除し、ストレージエンジンに関係なくすべてのテーブルにロードします。 DISABLE KEYSとENABLE KEYSは、MyISAMに対して適切に機能するため、InnoDBテーブルでは機能しないため(最良の場合は効果がありません)、この未知の事実はMySQLコミュニティによってより適切に文書化されます。 MySQLはOracleとして知られている銀河帝国の真ん中にあります。今後のドキュメントの変更については、息を止めません。