Sto lavorando a un progetto con un database Oracle piuttosto grande (anche se la mia domanda si applica ugualmente bene ad altri database). Abbiamo un'interfaccia web che consente agli utenti di cercare in quasi tutte le possibili combinazioni di campi.
Per velocizzare queste ricerche, stiamo aggiungendo indici ai campi e combinazioni di campi in cui crediamo che gli utenti effettueranno comunemente ricerche. Tuttavia, poiché non sappiamo realmente come i nostri clienti utilizzeranno questo software, è difficile stabilire quali indici creare.
Lo spazio non è un problema; abbiamo un drive RAID da 4 terabyte di cui stiamo usando solo una piccola parte. Tuttavia, sono preoccupato per le possibili penalizzazioni sulle prestazioni derivanti dall'avere troppi indici. Poiché questi indici devono essere aggiornati ogni volta che una riga viene aggiunta, eliminata o modificata, immagino che sarebbe una cattiva idea avere dozzine di indici su una singola tabella.
Quindi quanti indici sono considerati troppi? 10? 25? 50? O dovrei solo coprire i casi davvero, davvero comuni e ovvi e ignorare tutto il resto?