Ich halte dies für eine vorzeitige Optimierung, da unsere Anwendung noch nicht einmal veröffentlicht wurde. Ich schlug vor, nach dem Start auf langsame Abfragen zu achten und dann die Indizes entsprechend hinzuzufügen.
Sie können Ihre Endbenutzer und Ihre Produktionsumgebung nicht wie eine Qualitätssicherung behandeln. Mit anderen Worten, Sie sagen, Sie werden es in der Produktion herausfinden. Ich denke nicht, dass dies der richtige Weg ist, und ich sehe, dass dieser Ansatz jeden Tag schrecklich schief geht .
Sie müssen eines beachten, da Sie dies nicht mit einem breiten Pinsel malen können.
Was ist Ihre gemeinsame Arbeitsbelastung ?
Das mag offensichtlich oder langweilig klingen, ist aber in der Praxis von Bedeutung. Wenn Sie 10 Abfragen haben, die 98% Ihrer Arbeitslast ausmachen (ziemlich häufig, ob Sie es glauben oder nicht), wäre meine Empfehlung eine harte Analyse vor der Produktion . Stellen Sie mit realistischen und repräsentativen Daten sicher, dass diese 10 Abfragen so gut wie möglich sind ( perfekt ist eine Verschwendung wertvoller Zeit und fast nicht erreichbar).
Bei den anderen 200 Abfragen, die 2% der Arbeitslast ausmachen , handelt es sich wahrscheinlich um Abfragen, die keinen großen Aufwand wert sind und den Eckpfeiler für die Fehlerbehebung bei Unregelmäßigkeiten in der Produktion darstellen. Das ist auch eine Realität und keine schrecklich schlechte Sache. Dies bedeutet jedoch nicht, dass Sie die Best Practices für die Indizierung ignorieren oder geschätzte Annahmen zum Abrufen von Daten treffen.
Es ist gängige und bewährte Methode, die Datenbankleistung vor der Produktion zu ermitteln. Tatsächlich gibt es eine relativ verbreitete Position für diese Art von Dingen, die als Entwicklungs-DBA bezeichnet wird .
Aber...
Einige nehmen das zu weit und machen es wahnsinnig, Indizes "nur für den Fall" hinzuzufügen. Jemand empfiehlt, dass dies ein fehlender Index ist? Fügen Sie es und vier weitere Variationen hinzu. Auch eine schlechte Idee. Sie müssen nicht nur über das Abrufen von Daten nachdenken, sondern auch über die Änderung von Daten. Je mehr Indizes in einer Tabelle vorhanden sind, desto höher ist im Allgemeinen der Overhead beim Ändern von Daten.
Wie die meisten Dinge gibt es ein gesundes Gleichgewicht.
Als lustige kleine Randnotiz ... Die Pluralisierung von "Index"
"Indizes" sind für Finanzleute
"Indizes" sind für uns