Heutzutage wird die SQL-Optimierung von Datenbanken immer häufiger. Dies erfordert, dass jeder datenbankbezogene Mitarbeiter die allgemein verwendeten SQL-Tuning-Methoden für Datenbanken beherrscht. Lassen Sie uns einige grundlegende Methoden vorstellen.

Zunächst sollten wir die allgemeine Richtung der Optimierung definieren:

1. Der Primärschlüssel ist der Clustered-Index.

2. Solange der Index eingerichtet ist, kann die Abfragegeschwindigkeit verbessert werden.

3. Fügen Sie dem Clustered-Index alle Felder hinzu, die die Abfragegeschwindigkeit verbessern müssen, um die Abfragegeschwindigkeit zu verbessern.

Hinweise umfassen:

1. Indizieren Sie keine häufig verwendeten kleinen Tabellen.

2. Wählen Sie nicht als Schlüssel die Sozialversicherungsnummer (SSN) oder die ID-Nummer (ID).

3. Verwenden Sie nicht den Benutzerschlüssel.

4. Indizieren Sie keine Memo-/Notizenfelder und keine großen Textfelder (viele Zeichen).

5. Verwenden Sie den vom System generierten Primärschlüssel.

Stellen Sie anschließend sicher, ob Ihr Datenbanktyp und Ihr Framework dies unterstützen.

Was müssen wir bei der eigentlichen Datenbankentwicklung tun, um den Optimierungseffekt zu erzielen?

Bei der Entwicklung tritt langsames SQL auf, und es bestehen die folgenden Probleme.

Die große Datenmenge führt zu einer langsamen Gesamtanzahl von Zeilen. Denn ohne Archivierung, Migration oder Übertragung ins Hauptbuch werden die Daten weiterhin im Rückstand sein. Je höher die Berechtigungen, desto mehr Daten werden angezeigt. Je größer die Datenmenge, desto höher die Gesamtzahl der Zeilen. Das allgemeine Framework berechnet die Gesamtzahl der Zeilen basierend auf ausgelagertem SQL. Dies führt zu einer hohen Anzahl von Abtastzeilen und einer langsamen Abfragegeschwindigkeit. Das Optimierungsschema besteht darin, die Gesamtzahl der Zeilen im Status zu archivieren und in Form von Archivierung + Echtzeit anzuzeigen.

Es gibt mehr Uhren. Einige Datentabellen sind getrennt, aber die Daten verschiedener Abteilungen hängen zusammen. Um den gesamten Lebenszyklus bzw. die Prozessdaten zu sehen, müssen mehrere Tabellen verbunden werden. Auf diese Weise wird das durch N Fahrpläne verursachte kartesische Produkt nicht erwähnt. Komplizierte Logik und Tabellen verbrauchen CPU. Die CPU ist überlastet, was zu Überlastung führt. Diese Art von Situation ist die Verwendung von verteiltem Computing wie "Cloud Computing". Die Geschäftstabellendaten werden berechnet und innerhalb der angegebenen Zeit durch Trigger, gespeicherte Prozeduren usw. in die Anzeigetabelle geschrieben und direkt über die Anzeigetabelle verknüpft. Damit hat die Sperrtabelle nichts mit der Business-Tabelle zu tun. Die Anzahl der Assoziationstabellen kann ebenfalls reduziert werden. Um den Zweck der Reduzierung des CPU-Verbrauchs zu erreichen.

Der hohe Anteil an IOPS und CPU führt zu einer Datenbanklähmung. Wenn der CPU-Anteil hoch ist, wird das gesamte SQL der Datenbank langsam. Das gleiche gilt für IOPS. Langsames SQL führt dazu, dass die Abfragen in der Transaktion langsam sind. Andere Abfragen befinden sich in einem Wartezustand und werden blockiert. Bei umfangreichen Abfragen muss zuerst der Primärschlüssel überprüft werden. Geben Sie dann die temporäre Uhr ein. Dies ist ein Beispiel für den Zeit- und Speicherverbrauch für CPU und IOPS. Es sollte bekannt sein, wie man die höchsten Serverressourcen entwickelt und wie man das Gleichgewicht zwischen den Ressourcen kontrolliert, ist sehr wichtig.

Einige MYSQL-Frameworks exportieren beispielsweise gerne alle Datenbanken auf einmal und reduzieren dann Unterabfragen. Dies ist für valide Basisdaten machbar. Niemand sollte in der Lage sein, die Geschäftsdaten zu verwenden, aber es können viele Situationen in den Basisdaten vorkommen, wie z langsam sein. Daher sind mehr Anstrengungen des Datenbankpersonals erforderlich, um das Gleichgewicht zwischen den Ressourcen zu kontrollieren.

Dies sind einige gängige Methoden zur SQL-Optimierung von Datenbanken. Wenn Sie in diesem Bereich optimieren, helfen Ihnen diese Methoden.

 

Leave a Reply

Your email address will not be published. Required fields are marked *