Itu tergantung pada distribusi datanya.
Bayangkan saya memiliki sebuah buku dengan 1000 halaman yang diketik dengan cermat, dan satu-satunya kata dalam buku saya adalah 'ya' dan 'tidak' yang diulang berulang-ulang dan didistribusikan secara acak. Jika saya diminta untuk melingkari semua contoh 'ya', apakah indeks di belakang buku membantu? Tergantung.
Jika ada distribusi acak setengah-setengah dari ya dan tidak, mencari di indeks tidak akan membantu. Indeks akan membuat buku jauh lebih besar, dan bagaimanapun saya akan lebih cepat memulai dari depan dan menelusuri setiap halaman mencari semua contoh 'ya' dan memutarnya, daripada mencari setiap item di indeks dan kemudian mengambil referensi dari entri indeks ke halaman yang diacunya.
Tetapi jika ada, katakanlah, hanya sepuluh contoh 'ya' dalam buku seribu halaman saya dan yang lainnya hanya jutaan tidak, maka indeks akan menghemat banyak waktu untuk menemukan sepuluh contoh 'ya' dan memutarnya .
Itu sama di database. Jika itu adalah distribusi 50:50, maka indeks tidak akan membantu - mesin database lebih baik hanya membajak data dari awal hingga akhir (pemindaian tabel lengkap), dan indeks hanya akan membuat database lebih besar, dan lebih lambat untuk menulis dan memperbarui. Tetapi jika itu adalah sesuatu seperti distribusi 4000: 1 (sesuai oucil di utas ini), maka pencarian indeks dapat mempercepatnya sangat, jika 1 dari 4000 item yang Anda cari.