使用中にMySQLデータベースのテーブルにインデックスを作成できますか


21

そして、できれば、なぜすべきではない理由(パフォーマンス/安定性)ですか?

回答:


17

テーブルでInnoDBプラグインストレージエンジンを使用している場合(これを強くお勧めします)、セカンダリインデックスである場合(ほぼ間違いなく)、テーブルから読み取ることができます(つまり、SELECTステートメントに対してブロックされません)。


1
MySQLの5.6アップデート(2013年2月):あなたは今すぐオンラインDDLを使用してテーブルに読み書きすることができます- dev.mysql.com/doc/refman/5.6/en/...
モルガンTocker

15

はい、できます。インデックスの作成中は、インデックスを追加するテーブルをロックします。テーブルが大きい場合、インデックスの作成中に各行を読み取る必要があるため、時間がかかる場合があります。


Facebookには、これをオンラインで行うためのソリューションがあります。自分で試していない:facebook.com/notes/mysql-at-facebook/…–
esilver
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.