Frage

Ich versuche, ein redmine Datenbank zu optimieren, bevor es zu viel Schmerz bekommt; die Änderungen (im Grunde ein Protokoll aller SVN Changes) ist bei 137.000 Zeilen (ish) und die Tabelle wird auf die b asic Standardeinstellungen wirksam. Kein Schlüssel Verpackung etc.

Die Tabelle ist wie folgt

ID int[11] Auto Inc (PK)
changeset_id int[11]
action varchar[1]
path varchar[255]
from_path varchar[255]
from_revision varchar[255]
revision varchar[255]
branch  varchar[255]

Indizes: Primäre (ID), Frankreich changeset_id auf INDEX BTREE

Alle auf latin1 charset basierend auf ein paar Informationen von http://forge.mysql.com/ wiki / Top10SQLPerformanceTips

Die Tabelle Engine InnoDB Pack Keys ist auf Standard eingestellt (nur packt char varchar)

Alle anderen Optionen sind ausgeschaltet.

Was ist der beste Weg, dies zu optimieren? (Bar Kürzen; o))

War es hilfreich?

Lösung

Es gibt einige allgemeinen Optimierungstechniken für mysql: die sicher stellen wird, die Datentypen passen die ABCs (siehe hier ). Going über dann von oben nach unten, ID und gut changeset_id aussehen, Aktion sollte wohl ein Zeichen sein? hier ist ein grundlegendes Tutorial , wenn Sie es brauchen)

Andere Tipps

Es hängt ganz von Ihren Eigenschaften lesen und schreiben, das heißt, die Abfragen Sie machen, und wie oft Sie schreiben es.

Der Weg zum Schreiben zu optimieren, ist die Anzahl der Indizes zu minimieren. Idealerweise verwenden Sie, was in MS SQL Server mit einer monoton Inkrementieren Schlüssel der „Clustered-Index“ wäre, sicherzustellen, dass Sie am Ende der Tabelle neue Datensätze zu schreiben, und schreiben Sie keinen anderen separaten Index. Noch besser wäre es, auch, ist das DBMS und schreibt auf eine einfache alte Protokolldatei von einer Art zu überspringen, wenn Sie brauchen keine Transaktionsfähigkeit.

Für Fragen, na ja, das kann so komplex wie Sie möchten. Halten Sie daran, dass, obwohl, wenn Sie für eine Abfrage eine erhebliche Menge an Daten aus der Tabelle müssen (das heißt, es ist mehr als nur einen einzelnen Datensatz basierend auf einem Schlüssel aufzuzublicken), Tabellen-Scans kann nicht so schlimm sein. Im Allgemeinen, wenn Sie mehr als 3-5% der Inhalte einer Tabelle sind die Prüfung wird eine Table-Scan sehr schnell sein. Auch für diesen, wird wahrscheinlich eine einfache alte Datei als ein DBMS schneller sein.

Wenn Sie beide zu optimieren haben, sollten Sie für das Schreiben zu optimieren und dann eine Kopie auf einer regelmäßigen Basis zu machen, die Sie für Abfragen optimieren und dabei die Abfragen für die Kopie.

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