Hallo Luckie,
man sollte immer auf die Spalten einen Index setzen, die häufig für Abfragen und Zugriffe benutzt werden. Natürlich bedeuten Indizes einen Overhead beim Einfügen und Löschen. Hier muss man abwägen zwischen der reinen Lehre und der Praxis. In einer kleinen Tabelle (was klein ist, hängt sehr von der Datenbank und der Maschine ab) müssen sich Indizes nicht unbedingt lohnen, da kann die
DB im Zweifelsfalle die Tabelle durchsehen (Full-Table-Scan). Manch
DB tut das ohnehin, auch wenn ein Index vorhanden ist, wenn sie sieht, dass sie die Daten ohnehin braucht.
Normalerweise sollte man aber diese Betrachtung der
DB überlassen und ihr helfen, indem man die Indizes anlegt.
Die Index-Dateien werden allerdings immer automatisch aktuell gehalten, was Du meinst, ist das Reorganisieren, wenn sehr viel hin- und hergeändert worden ist.
Wenn bei deiner
DB häufig Masseninserts und -deletes stattfinden, gibt es noch einen kleinen Trick: Vor der Aktion Indizes löschen, danach wieder definieren. Dann muss die
DB nicht während der Inserts soviel nachziehen und ausserdem weiss sie hinterher, wieviele Daten mit welcher Streuung in die Indizes aufgenommen werden müssen. Dann kann dann im Zweifelsfalle noch etwas optimiert werden.
Bis dann
Peter