更新/挿入後にインデックスが更新されるのはいつですか? 更新/挿入クエリが戻る前ですか、クエリが戻った後か、インデックスを使用するクエリが実行されたときですか。
6674 次
2 に答える
5
インデックスの更新には 2 つの要素があります。
最初の部分は、インデックスへの/からのエントリの挿入/更新/削除です。インデックスはレコードが変更されるとすぐに更新され、このプロセスは完了するまでクエリをブロックします。
これにより、インデックス付きの列の条件に基づいてレコードをより高速に取得できます。これは、インデックスの最もよく理解されている目的です。
2 番目の部分は、インデックスの統計を更新することです。これにより、オプティマイザーは、特定のクエリに対してインデックスを使用する価値があるかどうかを判断できます。のようなクエリを想像してくださいSELECT * FROM users WHERE disabled = 0
。ほとんどのユーザーが実際にアクティブであると仮定します。インデックス統計が最新の場合、オプティマイザは、テーブルのほとんどのレコードがクエリによって返されることを認識し、テーブルをほぼ完全にスキャンする必要があります。インデックスを使用せず、すぐにテーブルをスキャンすることを決定する可能性があります。
この更新は、非常に特殊な状況を除き、自動的には行われません。これらの統計は、定期的に手動で更新する必要があります。ANALYZE TABLE [table_name]
于 2013-06-24T18:40:20.763 に答える