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

Richtige Schritte zur Installation von Nginx unter Linux

Vorwort Wenn Sie wie ich ein fleißiger Java-Backe...

Zusammenfassung zum Erstellen und Verwenden von Array-Methoden in Bash-Skripten

Definieren eines Arrays in Bash Es gibt zwei Mögl...

Absatzlayout und Zeilenumbrüche in HTML-Webseiten

Das Erscheinungsbild einer Webseite hängt maßgebl...

Hilfe zum Webdesign: Datenreferenz für Web-Schriftgrößen

<br />Der Inhalt wurde aus dem Internet repr...

Zusammenfassung der Zeilenumbruchprobleme bei Textbereichen in HTML

Kürzlich stieß ich auf das Problem, ob die Daten b...

Detaillierte Erklärung der grundlegenden Syntax und Datentypen von JavaScript

Inhaltsverzeichnis JavaScript importieren 1. Inte...

Detaillierte Erklärung der MySQL Master-Slave-Inkonsistenz und Lösungen

1. MySQL Master-Slave-Asynchronität 1.1 Netzwerkv...

MySQL wählt die richtige Speicher-Engine

Wenn es um Datenbanken geht, ist eine der am häuf...

So installieren Sie vncserver in Ubuntu 20.04

Ubuntu 20.04 wurde im April 2020 offiziell veröff...

Details zum Lazy Loading im Vue-Routing

Inhaltsverzeichnis 1. Was ist Lazy Loading von Ro...

Rhit effiziente Visualisierung Nginx-Protokollanzeigetool

Inhaltsverzeichnis Einführung Installieren Anzeig...