Saya sedang mengerjakan proyek dengan database Oracle yang agak besar (meskipun pertanyaan saya berlaku sama baiknya untuk database lain). Kami memiliki antarmuka web yang memungkinkan pengguna untuk mencari di hampir semua kemungkinan kombinasi bidang.
Untuk mempercepat pencarian ini, kami menambahkan indeks ke bidang dan kombinasi bidang yang kami yakini akan dicari oleh pengguna secara umum. Namun, karena kami tidak benar-benar tahu bagaimana pelanggan kami akan menggunakan perangkat lunak ini, sulit untuk membedakan indeks mana yang akan dibuat.
Ruang bukanlah masalah; kami memiliki drive RAID 4 terabyte yang hanya kami gunakan sebagian kecil. Namun, saya khawatir tentang kemungkinan penalti kinerja karena memiliki terlalu banyak indeks. Karena indeks tersebut perlu diperbarui setiap kali baris ditambahkan, dihapus, atau diubah, saya membayangkan akan menjadi ide yang buruk untuk memiliki lusinan indeks dalam satu tabel.
Jadi berapa indeks yang dianggap terlalu banyak? 10? 25? 50? Atau haruskah saya membahas kasus yang benar-benar umum dan jelas dan mengabaikan yang lainnya?