MySQLの場合、「ALTER TABLE…DISABLE KEYS;」はどれくらいの時間かかりますか 最後に声明?


12

mysql INNODBテーブルでキーを無効にする(インデックス作成を一時停止する)場合、その設定はどれくらい続きますか?

次のようなクエリの場合:

ALTER TABLE users DISABLE KEYS;

キーはスクリプトの最後で再び有効になりますか? または、明示的にインデックスを有効にするまで持続しますか?


この質問は、DISABLE KEYS、ENABLE KEYS、およびInnoDBについて他の人が何かを理解するのを支援するために+1に値します。
-RolandoMySQLDBA


回答:


7

Fine Manual(読む価値は十分あります)は、そのステートメントの効果は、対応するALTER TABLE ... ENABLE KEYSステートメントが実行されるまで続くことを示唆しています。


6

実際には、ALTER TABLE ... DISABLE KEYSおよびALTER TABLE ... ENABLE KEYSは機能しません!!!!

これについては、2011年2月13日に取り上げました。

さらに掘り下げて調べたところ、InnoDBの母会社であるInnoBase Oy(Oracle Borgで9分の7にされる前)から、これが事実であることがわかりました。

このリンクでは、DISABLE KEYSを実行し、外部キーを一緒に無効にすることをお勧めします。私は両方とも不要だと思うが、これは明らかに誰かのために働いた。

更新2011-07-18 12:35 EDT

これは、MySQLに残された悪を暴露するため、非常に良い質問です。mysqldumpプログラムは、ストレージエンジンに関係なく、すべてのテーブルの作成とロードに関連してDISABLE KEYSとENABLE KEYSを盲目的にドロップします。DISABLE KEYSおよびENABLE KEYSはMyISAMで適切に機能するため、InnoDBテーブルでは機能しないため(最良の場合は効果がありません)、この未知の事実はMySQLコミュニティによって文書化される必要があります。そうそう、MySQLはOracleとして知られる銀河帝国の真ん中にあります。私は、今後のドキュメントの変更について息を止めません。


3
発言は一つのことです。大文字と太字の両方を使用してそれを叫ぶことは、いくぶん過剰であり、完全に不要です。
ジョンガーデニアス

1
@ジョン:すみません、私は過度に熱心です。私は誰にも怒っていません。InnoDBに対するALTER TABLE DISABLE / ENABLE KEYSは十分に文書化されていません。Oracleも物事を改善するつもりはありません。
RolandoMySQLDBA

@RolandoMySQLDBAは、mysqldumpがダンプファイルにDISABLE KEYSおよびENABLE KEYSを入れることを回避する回避策がありますか?
パニン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.