Zwei Fragen zu denken:
- Wie viele Spalten für die Abfrage nominiert werden könnte?
- Ändern sich die Daten häufig? Viel davon?
Wenn Sie eine kleine Anzahl von Kandidaten-Spalten haben, und die Daten ändern nicht viel, dann könnten Sie auf jeder Hinzufügen eines permanenten Index berücksichtigen wollen oder sogar alle in Frage kommenden Spalte.
"Blasphemie!", höre ich. Die meisten Quellen fordern Sie auf, "niemals" jede Spalte einer Tabelle zu indizieren, aber diese Empfehlung basiert auf der allgemeinen Annahme, dass Tabellen häufig geändert werden.
Sie zahlen einen Preis für zusätzlichen Speicher und einen Leistungseinbruch, wenn sich die Daten ändern.
Wie klein ist klein und wie viel ist viel, und ist der Kompromiss es wert? Es gibt keine Möglichkeit, einem Priorat zu sagen, weil "zu langsam" normalerweise eine subjektive Messung ist.
Sie müssen es versuchen, messen Sie die Größe Ihrer Indizes und dann den Effekt, den sie in den Suchen haben. Sie müssen die Kosten gegen die Erhöhung der Zufriedenheit Ihrer Kunden abwägen.
[Hinzugefügt] Oh, noch eine Sache: temporäre Indizes sind nicht nur physisch langsamer als ein Table Scan, aber sie würden Ihre Nebenläufigkeit zerstören. Das Umschreiben einer Tabelle in der Regel (immer?) Erfordert eine vollständige Tabellensperre, sodass eigentlich nur eine Benutzersuche gleichzeitig ausgeführt werden kann.
Viel Glück.