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