Wie viele Daten können in einer MySQL-Tabelle gespeichert werden?

Wie viele Daten können in einer MySQL-Tabelle gespeichert werden?

Programmierer müssen sich viel mit MySQL befassen und man kann sagen, dass sie täglich damit in Kontakt kommen, aber wie viele Daten können in einer MySQL-Tabelle gespeichert werden? Was ist die Berechnungsgrundlage? Lassen Sie uns sie als nächstes einzeln besprechen

Wissensvorbereitung

Datenseite

Wir wissen, dass im Betriebssystem zur Interaktion mit der Festplatte auch der Speicher ausgelagert wird, mit einer Seitengröße von 4 KB. Um den Durchsatz in MySQL zu verbessern, werden die Daten ebenfalls ausgelagert, die Datenseitengröße von MySQL beträgt jedoch 16 KB. (Um genau zu sein, beträgt die InnoDB-Datenseitengröße 16 KB). Ausführliche Informationen finden Sie auf der offiziellen Website. Wir können sie mit dem folgenden Befehl abfragen.

mysql> GLOBALEN STATUS ANZEIGEN, WIE 'innodb_page_size';
+------------------+--------+
| Variablenname | Wert |
+------------------+--------+
| Innodb_Seitengröße | 16384 |
+------------------+--------+
1 Zeile im Satz (0,00 Sek.)

Heute werden wir nicht näher auf den spezifischen Strukturzeiger der Datenseite eingehen. Wir möchten nur wissen, dass er standardmäßig 16 KB beträgt, was bedeutet, dass die Datengröße eines Knotens 16 KB beträgt.

Indexstruktur (innodb)

Wir alle kennen die Indexstruktur von MySQL, die die folgende B+-Baumstruktur aufweist

Normalerweise speichern Nicht-Blattknoten eines B+-Baums keine Daten. Nur Blattknoten (die unterste Ebene) speichern Daten. Sprechen wir also über Knoten. Ein Knoten bezieht sich (für die obige Abbildung) auf

Jeder durch ein rotes Kästchen ausgewählte Teil wird als Knoten und nicht als Element bezeichnet. Wenn Sie das Konzept der Knoten verstanden haben und wissen, dass jeder Knoten eine Größe von 16 KB hat, können Sie viel einfacher berechnen, wie viele Daten MySQL speichern kann.

Spezifische Berechnungsmethode

Wurzelknotenberechnung

Schauen wir uns zunächst den Stammknoten an

Beispielsweise ist der von uns festgelegte Datentyp bigint und die Größe 8b

In den Daten selbst gibt es jetzt einen kleinen Bereich, in dem die Adresse der Indexdatenseite der nächsten Ebene gespeichert wird. Die Größe beträgt 6 KB.

Wir können also einen Speicherplatz von (8b+6b=14b) Daten berechnen (am Beispiel von Bigint). Wir haben gerade gesagt, dass die Größe einer Datenseite 16 KB beträgt, also (16 1024)b, sodass der Stammknoten (16 1024/(8+6)) Daten speichern kann , also etwa 1170 Daten. Wenn dies mit der Knotenberechnungsmethode berechnet wird, ist der nächste Schritt einfach.

Berechnung von Knoten in anderen Schichten

Die zweite Schicht ist eigentlich einfacher, da die Datenstruktur jedes Knotens mit der des Stammknotens identisch ist und jedes Element des Stammknotens zu einem Knoten erweitert wird, sodass die Datenmenge in der zweiten Schicht 1170 * 1170 = 1368900 beträgt. Das Problem liegt in der dritten Schicht, da der Blattknoten von InnoDB direkt die gesamten MySQL-Daten enthält. Wenn es viele Felder gibt, ist der von den Daten belegte Speicherplatz nicht gering. Wir berechnen ihn hier als 1 KB, sodass in der dritten Schicht jeder Knoten 16 KB groß ist und jeder Knoten 16 Daten enthalten kann. Die Gesamtdatenmenge, die MySQL am Ende speichern kann, beträgt also

1170 * 1170 * 16 = 21902400 (Zehnmillionen)

Tatsächlich entsprechen die Berechnungsergebnisse unserer üblichen Arbeitserfahrung. Wenn die Daten in einer MySQL-Tabelle 10 Millionen überschreiten, müssen sie im Allgemeinen in Tabellen aufgeteilt werden.

Zusammenfassen

Zum Abschluss möchte ich noch einmal anhand eines Bildes zusammenfassen, was wir heute besprochen haben. Ich hoffe, es gefällt Euch.

Dies ist das Ende dieses Artikels darüber, wie viele Daten eine MySQL-Tabelle speichern kann. Weitere Informationen dazu, wie viele Daten eine MySQL-Tabelle speichern kann, finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Verwenden Sie pymysql, um die Datenbank abzufragen, die Ergebnisse als Liste zu speichern und die angegebene Elementindexinstanz abzurufen
  • Analyse, wie eine gespeicherte Prozedur in MySQL erstellt wird, um einer Datentabelle neue Felder hinzuzufügen
  • Django verwendet die vorhandene Datentabellenmethode der Mysql-Datenbank
  • MySQL 3 Möglichkeiten zum Ändern der Datentabellen-Speicher-Engine
  • MySQL erstellt dynamisch Tabellen und speichert Daten in Tabellen

<<:  react+antd.3x implementiert IP-Eingabefeld

>>:  So installieren Sie Windows Server 2008 R2 auf einem Dell R720-Server

Artikel empfehlen

Ist das Tag „li“ ein Blockelement?

Warum kann es die Höhe festlegen, aber im Gegensat...

Das Linux-System verbietet den Remote-Login-Befehl des Root-Kontos

PS: So deaktivieren Sie die Remote-Anmeldung des ...

Wettersymbol-Animationseffekt implementiert durch CSS3

Ergebnisse erzielen Implementierungscode html <...

Tutorial zum binären Suchbaumalgorithmus für JavaScript-Anfänger

Inhaltsverzeichnis Was ist ein binärer Suchbaum (...

Lösungen für MySql-Abstürze und Dienststartfehler

Ich habe so lange mit PHP zu tun gehabt, aber die...

CSS: besuchte geheime Erinnerungen des Pseudoklassenselektors

Gestern wollte ich a:visited verwenden, um die Fa...

So verwenden Sie Docker zum Bereitstellen von Front-End-Anwendungen

Docker erfreut sich immer größerer Beliebtheit. E...

Detaillierte Erklärung der MySQL-Berechtigungssteuerung

Inhaltsverzeichnis MySQL-Berechtigungskontrolle B...

Implementierung der MySQL5.7 mysqldump-Sicherung und -Wiederherstellung

MySQL-Sicherung Kaltes Backup:停止服務進行備份,即停止數據庫的寫入H...

Implementierung des CSS-Ladeeffekts Pac-Man

emmm, der Name ist nur eine zufällige Vermutung 2...

Wie implementiert MySQL ACID-Transaktionen?

Vorwort Kürzlich wurde ich in einem Interview gef...

Detaillierte Erklärung der Filter und Anweisungen in Vue

Inhaltsverzeichnis benutzerdefinierte Vue-Direkti...