[Datenbank] Feldtypen ändern, um Speicherplatz zu sparen

MySQL ändert den Feldtyp, um Speicherplatz zu sparen


Um Zeit zu sparen, können Sie direkt zur Zusammenfassungsversion springen.

lange Rede

Dieser Teil ist reproduziert von ( https://searchdatabase.techtarget.com.cn/7-19212/ )

Bei Datenbankoptimierungsarbeiten ist es eines der am häufigsten verwendeten und effektivsten Mittel, die Daten so klein wie möglich zu halten und den von der Tabelle auf der Festplatte belegten Platz so klein wie möglich zu halten. 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 Sie also nach Ihren eigenen Angaben abnehmen?

Vorschlag 1: Nullwerte beanspruchen nicht unbedingt keinen Platz

Nullwerte belegen keine Systemressourcen. Tatsächlich ist dies ein allgemeines 错误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. Dieser Ansatz beeinträchtigt die Datenbankleistung.

Versuchen Sie nach Möglichkeit, 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 des Datengewichtsverlusts 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.

Darüber hinaus sollte bei der Definition der Datenlänge darauf geachtet werden, dass diese möglichst kurz ist und gleichzeitig den Anforderungen entspricht. 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

Wenn Sie einen Index für eine kleinere Spalte festlegen, belegt der Index auch weniger Ressourcen. 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 Primärindex. Aus diesem Grund sollte der Primärindex 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 durch den Index belegten 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.

Als letztes 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 Aufwand, 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. Wenn auf eine Tabelle hauptsächlich durch die Suche nach einer Kombination von Spalten zugegriffen wird, ist es am besten, nur einen Index für diese festzulegen. 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 dort speichern, wo „Fülle“ benötigt wird

Eine Frau sollte dünn sein, wo sie dünn sein sollte, und rundlich, wo sie rundlich sein sollte. 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.

Nehmen Sie 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 eine Gewichtsreduktion der Daten unter keinen Umständen zu einer Verbesserung der Datenbankleistung führt. Das ist so, als würde man Geld sparen, um den Umsatz zu steigern, und diese Ersparnis sollte an der Spitze gespart werden. Andernfalls können Sie nicht nur kein Geld sparen, sondern schießen sich auch selbst ins eigene Bein. Laienhaft ausgedrückt bedeutet es, dünner zu sein, wo man dünn sein sollte, und dicker zu sein, wo man dick sein sollte. Merken Sie sich einfach diesen Satz.

Vorschlag 5: Teilen Sie die Tabelle auf, um Ihre Abnehmziele 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 Arbeitsbelastung zu diesem Zeitpunkt größer sein wird, wird die Verarbeitungsgeschwindigkeit viel schneller sein.

Nach diesem Prinzip ist es bei der Optimierung der Datenbank sehr vorteilhaft, eine große Tabelle, die häufig gescannt wird, in zwei oder mehr Darstellungen aufzuteilen. In der täglichen Arbeit gibt es beispielsweise eine Datentabelle im dynamischen Format. Wenn diese Daten eine Scan-Tabelle verwenden, wird diese verwendet, um die relativ kleine Tabelle im statischen Format verwandter Zeilen 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 hier keine weitere Erläuterung gegeben. Vielleicht werde ich in den folgenden Artikeln auf diesen Vorschlag näher eingehen und Ihnen eine detaillierte Erklärung geben.

zusammenfassende Version

Bei Datenbankoptimierungsarbeiten ist die Reduzierung des Datenspeicherplatzes eine der häufigsten und effektivsten Methoden zur Verbesserung der Leistung. Hier einige Optimierungsvorschläge:

  1. Ein Nullwert benötigt nicht zwangsläufig keinen Platz. Versuchen Sie daher, Spalten auf NOT NULL zu setzen, was Speicherplatz sparen und die Verarbeitungsgeschwindigkeit erhöhen kann. Wenn Sie wirklich NULL-Werte benötigen, vermeiden Sie deren übermäßige Verwendung.
  2. Verwenden Sie den kleinstmöglichen Datentyp. Die Wahl des kleinstmöglichen Datentyps kann dazu beitragen, den Datenspeicherplatz zu reduzieren, eine Datengewichtsreduzierung zu erreichen und die Datenbankleistung weiter zu verbessern.
  3. Indizes hängen eng mit der Größe der Datentabelle zusammen. Das Festlegen von Indizes für relativ kleine Spalten kann weniger Ressourcen beanspruchen, sodass der Zweck der Datengewichtsreduzierung erreicht werden kann. Allerdings können Indizes nicht missbraucht werden und der entsprechende Index muss am richtigen Ort und zur richtigen Zeit eingerichtet werden.
  4. Ich kann immer noch nicht dort speichern, wo „Fülle“ benötigt wird. In einigen Fällen kann sich das Einsparen von Speicherplatz auf die Abfrageleistung auswirken, sodass eine Datenreduzierung nicht in allen Fällen durchgeführt werden kann. Wenn Sie beispielsweise keine Spalten mit variabler Länge haben, ist es besser, einen Datentyp mit fester Größe zu verwenden. Auch wenn dadurch eine gewisse Menge an Speicherplatz verschwendet wird, kann dadurch auch die Abfragegeschwindigkeit der Daten verbessert werden.
  5. Teilen Sie die Tabelle zum Zweck der Gewichtsabnahme auf. Durch die Aufteilung einer großen Tabelle, die häufig gescannt wird, in mehrere kleinere Tabellen kann die Verarbeitungsgeschwindigkeit erhöht werden. Bei der Aufteilung der Tabelle müssen die Regeln der Daten berücksichtigt werden, um spätere Datenstatistiken und -analysen zu erleichtern.

Kurz gesagt erfordert die Optimierung der Datenbankleistung die Berücksichtigung vieler Aspekte, einschließlich Speicherplatznutzung, Datentypen, Indizes, Tabellenpartitionierung usw. In der konkreten Arbeit ist es notwendig, die spezifische Situation umfassend zu betrachten und entsprechende Optimierungsstrategien zu ergreifen.

Wenn es Fehler gibt, lassen Sie es mich bitte wissen!
Wenn Sie den Inhalt dieses Artikels nachdrucken oder zitieren, geben Sie bitte die Quelle und den ursprünglichen Autor an: Juzu Qingzhong;

Supongo que te gusta

Origin blog.csdn.net/weixin_44510587/article/details/131000808
Recomendado
Clasificación