Frage

Ich arbeite in SQL Server 2005 I ein Ereignisprotokoll-Tabelle haben, dass Spuren von Benutzeraktionen, und ich sicherstellen möchten, dass Einsätze in der Tabelle so schnell wie möglich sind. Derzeit ist die Tabelle hat keine Indizes. Ist nur ein einziger nicht-gruppierten Index Einsätze an aller Zugabe verlangsamen? Oder ist es nur Clustered-Indizes, dass verlangsamen Einsätze? Oder sollte ich nur einen gruppierten Index hinzufügen und sich keine Sorgen darüber?

War es hilfreich?

Lösung

Indizes, gruppierten oder nicht gruppierten, wird immer Einsätze verlangsamen, wie SQL sowohl die Tabellen und Indizes zu halten hat. Diese Verlangsamung ist in einem „absoluten“ Sinne und man kann es nicht bemerken. Ich möchte noch hinzufügen, was Indizes sind notwendig, um Ihre Daten abzurufen.

Andere Tipps

Ja, nimmt jeder Index ein wenig Zeit auf dem neuesten Stand zu halten, wenn INSERT, UPDATE, DELETE Operationen zu tun. Je mehr Indizes Sie haben, desto mehr Zeit wir reden.

Aber letztlich hängt es davon ab, was Ihnen wichtiger - gute Abfrageleistung (fügen Sie dann Indizes nach Bedarf) oder gute Einfügeleistung (dann so wenige Indizes wie möglich haben).

Welche Operation tun Sie öfter durchführen ??

Das ist, weil jeder Sekundärindex in MySQL (und anderem Datenbank-Engine) ein separater Speicherpool ist, in der Regel als eine Art B-Baum organisiert.

Diese Speicherpools enthalten Index Datensätze, die die indizierten Werte und eine gewisse Art von Zeiger auf die Basistabelle aufnehmen müssen. In MySQL Fall ist dieser Zeiger der Primärschlüssel der Basistabelle.

Jedes Mal, wenn Sie einen Datensatz einfügen oder löschen, werden diese Indexspeicherbereiche haben neue Datensätze hinzugefügt oder gelöscht werden. Wenn Sie einen Datensatz aktualisieren -. Und das UPDATE beinhaltet eine indexierte Spalte, der betreffende Index Speicherpool hat seinen Datensatz aktualisiert und haben

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top