2012-03-26 36 views
1

私はすでにMySQLにインデックスを含んでいるテーブルを持っています。私はテーブルにいくつかの行を追加しました。何とかテーブルのインデックスを再作成する必要がありますか、MySQLは自動的にこれを行いますか?mysqlでインデックスを再作成する

答えて

2

これは自動的に行われます。これが、インデックスを作成したくない場合がある理由です。挿入時にインデックスの一部を再構築すると、パフォーマンスにはほとんど影響を与えませんが、オーバーヘッドは少なくなります。

+2

正確には、インデックスは再構築されません。それはそれに追加するだけです(その一部を再構築する必要があります)。 –

+0

@MatthewFlaschenええ、あなたは絶対に正しいです!索引全体を再構築すると、DBで合理的な作業を吹き飛ばすことになります。私は修正を加えました –

1

インデックスをMySQLで定義すると、意図的にインデックスを無効にしていない限り、データベースの現在の状態が常に反映されます。インデックス作成が再び有効になるとすぐに、インデックスが更新されます。通常、索引付けは、パフォーマンス上の理由から大きな挿入時にのみ使用禁止になります。

テーブルの各インデックスに関連するコストがあります。良い索引は検索時間を大幅に短縮しますが、定義するすべての索引は挿入を遅くします。挿入コストは、データベースのサイズとともにゆっくりと増加します。このため、大量のデータを処理する場合に必要なインデックスのみを定義する必要があります。

インデックスが定義されているかどうかを確認するには、SHOW CREATE TABLEを使用して特定のテーブルを参照できます。

1

いいえ、インデックスを再構築する必要はありませんでした。
レコード挿入は古いインデックスに自動的に影響します..

関連する問題