Heim  >  Artikel  >  Datenbank  >  Durch die MySQL-Leistungsoptimierung läuft die Datenbank schneller

Durch die MySQL-Leistungsoptimierung läuft die Datenbank schneller

黄舟
黄舟Original
2017-02-22 10:52:511297Durchsuche



Machen Sie bei der Datenbankoptimierung die Daten so klein wie möglich, damit die Tabelle weniger Platz einnimmt auf der Festplatte Den Speicherplatz so klein wie möglich zu halten, ist eine der am häufigsten verwendeten und effektivsten Methoden. Da die Datenmenge reduziert wird, kann die Lese- und Schreibgeschwindigkeit der Festplatte relativ verbessert werden, und die Inhaltsverarbeitung der kleinen Tabelle während des Abfragevorgangs beansprucht weniger Systemressourcen. Wenn ein Index auf eine kleinere Spalte festgelegt wird, belegt der Index auf die gleiche Weise weniger Ressourcen. Wie können Datenbankadministratoren also Gewicht für ihre eigenen Daten verlieren? Der Autor hat hierfür die folgenden Vorschläge.

Vorschlag 1: Nullwerte beanspruchen nicht unbedingt keinen Platz

Hier gebe ich Ihnen eine kurze Einführung. Einige Datenbankadministratoren glauben, dass Nullwerte keine Systemressourcen belegen. Tatsächlich ist dies ein falsches Verständnis. Beim Entwerfen der Datenbank möchten sie die Eigenschaften des Felds nicht auf NOT NULL setzen. Lassen Sie Benutzer Daten entsprechend ihren Anforderungen eingeben. Der Autor ist der Ansicht, dass dieser Ansatz der Leistung der Datenbank abträglich ist

Der Autor ist der Meinung, dass nach Möglichkeit versucht werden sollte, die Spalte auf NOT NULL zu setzen, d. h. es sind keine Nullwerte zulässig. Dies kann die nachfolgende Verarbeitung beschleunigen und gleichzeitig aus Sicht der Datenspeicherung ein Bit pro Spalte einsparen, wodurch der Zweck der Datengewichtsreduzierung erreicht wird. Wenn es in der tatsächlichen Arbeit Situationen gibt, in denen Benutzer keine Daten eingeben müssen, können Standardfelder auch verwendet werden, um nicht leere Zwecke zu erreichen. Beispielsweise können im Gehaltsabrechnungssystem die Arbeitsjahre des Benutzers standardmäßig auf 0 statt auf leer gesetzt werden. Wenn Sie wirklich NULL benötigen, gibt es natürlich keine Möglichkeit. Als Datenbankentwickler sollten Sie jedoch versuchen, die Verwendung von NULL-Werten zu vermeiden.

Vorschlag 2: Verwenden Sie einen möglichst kleinen Datentyp

Die Größe des Datentyps wirkt sich auch auf die Größe der zugrunde liegenden Tabelle aus. Beispielsweise können die beiden Datentypen MEDIUMINT und INT zum Speichern ganzzahliger Daten verwendet werden, die Genauigkeit, die sie speichern können, ist jedoch unterschiedlich. Aus Sicht der Datenspeicherung benötigt Ersteres jedoch etwa 25 % weniger Speicherplatz als Letzteres. Aus diesem Grund sollte INT nicht verwendet werden, wenn MEDIUMINT verwendet werden kann.

Außerdem sollte bei der Definition der Datenlänge diese so kurz wie möglich sein und gleichzeitig den Anforderungen gerecht werden. Beispielsweise gibt es im Gehaltsbeurteilungssystem ein Feld zur Mitarbeiterkodierung. Wenn der Unternehmensmitarbeitercode ermittelt wurde, besteht dieser aus fünf Zeichen. Beim Definieren des Feldes müssen Sie dann nur noch die Länge von 5 Zeichen festlegen. Dies kann nicht nur den Speicherplatz reduzieren, sondern auch eine bestimmte Funktion zum Korrekturlesen von Daten übernehmen. Wenn die vom Benutzer eingegebene Codelänge 5 Ziffern überschreitet, können die Daten nicht gespeichert werden.

Obwohl beim Speichern bestimmter Daten viele Datentypen zur Auswahl stehen, können Sie auch relativ viele Zeichen definieren. Die Wahl des kleinstmöglichen Datentyps kann jedoch dazu beitragen, den Datenspeicherplatz zu reduzieren und den Zweck der Datengewichtsreduzierung zu erreichen. Dadurch wird die Leistung der Datenbank weiter verbessert.

Vorschlag 3: Die Beziehung zwischen Index und Datentabellengröße

Der Autor erwähnte am Anfang des Artikels, dass, wenn ein Index für eine relativ kleine Spalte festgelegt wird, der Index auch weniger Ressourcen belegt. Es ist ersichtlich, dass auch der Index und die Größe der Datentabelle eng miteinander verbunden sind. Durch Einstellen des richtigen Index am richtigen Ort und zur richtigen Zeit kann auch der Zweck des Datengewichtsverlusts erreicht werden.

Wie üblich kann jede Datentabelle mehrere Indizes haben, oft gibt es jedoch nur einen Hauptindex. Aus diesem Grund sollte der Hauptindex jeder Tabelle so kurz und prägnant wie möglich gehalten werden. Dies kann der Datenbank helfen, es schneller zu identifizieren.

Ein weiteres Beispiel besteht darin, das Präfix so weit wie möglich zu indizieren. Wenn Sie beispielsweise jetzt eine Tabelle haben, müssen Sie einen Index für eine bestimmte Spalte festlegen. Und diese Spalte hat ein Merkmal, das heißt, sie hat ein eindeutiges Präfix für die ersten paar Zeichen. Wenn dies der Fall ist, wäre es besser, dieses Präfix eng zu indizieren, als alle. In der MySQL-Datenbank wird die Erstellung eines Index für den ganz linken Teil einer Zeichenspalte unterstützt. Das bedeutet, dass die Datenbank ein Feld nach bestimmten Regeln in zwei Teile aufteilt. Wenn die Daten im vorderen Teil nach der Aufteilung eindeutig bleiben können, müssen Sie nur einen Index für den vorderen Teil festlegen und müssen keinen Index für die Daten im gesamten Feld festlegen. Dies kann zweifellos die vom Index beanspruchten Ressourcen reduzieren und den Zweck der Gewichtsabnahme erreichen. Kürzere Indizes sorgen für schnellere Abfragegeschwindigkeiten. Weil sie weniger Speicherplatz auf der Festplatte beanspruchen und mehr Zugriffe im Index-Cache speichern. Dies reduziert die Anzahl der Festplattensuchen und verbessert die Abfrageeffizienz.

Abschließend ist zu beachten, dass Indizes nicht missbraucht werden können. Die Verwendung von Indizes kann zwar die Datenverarbeitungsfähigkeiten verbessern, aber Indizes bringen auch zusätzlichen Overhead mit sich. Nur wenn die Vorteile größer sind als der Overhead, kann die Verwendung von Indizes die Datenbankleistung verbessern. Andernfalls wird es den gegenteiligen Effekt haben. Wenn beispielsweise eine Tabelle schnell gespeichert werden muss und zu viele Indizes für die Tabelle festgelegt sind, haben die Indizes Nebenwirkungen. In diesem Zusammenhang schlägt der Autor vor, dass es am besten ist, nur einen Index für diese festzulegen, wenn auf eine Tabelle hauptsächlich über eine Kombination von Suchspalten zugegriffen wird. Natürlich sollte dieser Indexteil die am häufigsten verwendete Spalte in der täglichen Arbeit sein. Als letzten Ausweg, wenn Sie mehrere Indizes verwenden müssen, ist es am besten, Spalten mit mehr Kopien zu verwenden, um eine bessere Indexkomprimierung zu erreichen. Dies reduziert den erhöhten Ressourcenverbrauch, der durch die Verwendung mehrerer Indizes verursacht wird.

Vorschlag 4: Ich kann immer noch nicht an den Stellen sparen, die „voll“ sein müssen

Eine Frau sollte dünn sein, wo sie dünn sein sollte, und mollig, wo sie sein sollte sie sollte rundlich sein. Tatsächlich gilt das Gleiche auch für Datenbanken. Wo immer Sie Festplattenspeicher sparen können, sparen Sie ihn. Und was nicht eingespart werden kann, kann nicht rationalisiert werden, um abzunehmen. Manchmal kann das nach hinten losgehen.

Der Autor nimmt Varchar als Beispiel. Wenn Sie wie in MyISAM keine Spalten mit variabler Länge haben, ist es besser, Datentypen mit fester Größe zu verwenden. Obwohl Datentypen fester Länge verwendet werden, wird häufig eine gewisse Menge an Speicherplatz verschwendet. Denn wenn die vom Benutzer eingegebenen Daten nicht ausreichen und eine feste Länge verwendet wird, werden die Daten trotzdem in dieser festen Länge gespeichert. Wenn Sie in diesem Fall jedoch eine feste Länge verwenden können, müssen Sie dennoch eine feste Länge verwenden. Denn in diesem Fall wird zwar eine gewisse Menge Festplattenspeicher verschwendet, die Geschwindigkeit der Datenabfrage kann jedoch verbessert werden.

Es ist ersichtlich, dass der Gewichtsverlust von Daten die Datenbankleistung unter keinen Umständen verbessern kann. Dies ist wie eine Kostensenkung und eine Steigerung des Umsatzes, und diese Einsparungen sollten auf dem neuesten Stand gehalten werden. Andernfalls können Sie nicht nur kein Geld sparen, sondern schießen sich auch selbst ins eigene Bein. Laienhaft ausgedrückt: Man sollte dünner sein, wo man dünn sein sollte, und dicker, wo man dick sein sollte. Merken Sie sich einfach diesen Satz.

Vorschlag 5: Teilen Sie die Tabelle auf, um Gewichtsverlustziele zu erreichen

Wenn Ameisen Futter bewegen und ein Stück Futter zu groß zum Bewegen ist, kann es sein, dass die Ameisen das Stück Futter teilen, bis es bewegt werden kann. Dies ist das Prinzip beim Teilen des Kuchens. Tatsächlich kommt dieses Phänomen im Arbeitsalltag häufig vor. Wenn wir beispielsweise über eine Datenbanktabelle verfügen und diese viele Datensätze enthält, ist die zulässige Geschwindigkeit der Tabelle sehr langsam. In diesem Fall kann die Tabelle nach bestimmten Regeln in mehrere Arbeitsmappen aufgeteilt werden. Beispielsweise gibt es jetzt eine Kopie der Anwesenheitsinformationen von Firmenmitarbeitern. Beim Abfragen, Sortieren und Zählen dieser Tabelle ist die Wartezeit sehr lang. Zu diesem Zeitpunkt können Sie es je nach Abteilung in verschiedene Arbeitsmappen unterteilen und dann relevante Datenanalysen für diese durchführen. Obwohl die Arbeitslast zu diesem Zeitpunkt größer sein wird, wird die Verarbeitungsgeschwindigkeit viel schneller sein

Nach diesem Prinzip kann bei der Optimierung der Datenbank eine große Tabelle, die häufig gescannt wird, in zwei oder mehr Teile geteilt werden Die Darstellung ist sehr hilfreich. In meiner täglichen Arbeit verfüge ich jetzt beispielsweise über eine Datentabelle im dynamischen Format. Wenn diese Daten eine Scan-Tabelle verwenden, verwende ich diese, um die relevanten Zeilen in einer relativ kleinen Tabelle im statischen Format zu finden.

Durch die Aufteilung dieser Tabelle kann ein großer Kuchen in mehrere kleinere Kuchen aufgeteilt werden, um spätere Datenstatistiken und -analysen zu erleichtern. Natürlich hängt die Qualität dieses Effekts direkt mit den Regeln dieser Aufteilung zusammen. Wie man den Tisch aufteilt, um den gewünschten Effekt zu erzielen, ist ein weiteres relativ großes Thema. Aufgrund des begrenzten Platzes wird der Autor hier nicht zu viele Erklärungen geben. Vielleicht wird der Autor in späteren Artikeln diesen Vorschlag näher erläutern und Ihnen eine detaillierte Erklärung geben.

Das Obige ist der Inhalt der MySQL-Leistungsoptimierung, um die Datenbank schneller laufen zu lassen. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn