Pembaruan indeks dilakukan dua kali lipat.
Bagian pertama adalah memasukkan/memperbarui/menghapus entri ke/dari file index. Indeks akan diperbarui segera setelah catatan diubah, dan proses ini memblokir kueri hingga selesai.
Hal ini memungkinkan pengambilan catatan yang lebih cepat berdasarkan kondisi pada kolom yang diindeks, tujuan indeks yang paling dipahami dengan baik.
Bagian kedua adalah memperbarui statistik indeks. Ini memungkinkan pengoptimal untuk menentukan apakah untuk kueri tertentu layak menggunakan indeks. Bayangkan kueri seperti SELECT * FROM users WHERE disabled = 0
. Asumsikan sebagian besar pengguna sebenarnya aktif. Jika statistik indeks mutakhir, pengoptimal akan menyadari bahwa sebagian besar catatan dari tabel akan dikembalikan oleh kueri, tabel hampir seluruhnya perlu dipindai. Kemungkinan akan memutuskan untuk tidak menggunakan indeks dan langsung memindai tabel.
Pembaruan ini tidak terjadi secara otomatis kecuali dalam hal yang sangat spesifik situasi
. Statistik ini harus diperbarui secara manual secara berkala dengan ANALYZE TABLE [table_name]