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 WissensvorbereitungDatenseiteWir 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 BerechnungsmethodeWurzelknotenberechnungSchauen 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 SchichtenDie 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. ZusammenfassenZum 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:
|
<<: react+antd.3x implementiert IP-Eingabefeld
>>: So installieren Sie Windows Server 2008 R2 auf einem Dell R720-Server
Vorwort Wenn Sie wie ich ein fleißiger Java-Backe...
Definieren eines Arrays in Bash Es gibt zwei Mögl...
Das Erscheinungsbild einer Webseite hängt maßgebl...
Wo liegt meine Heimatstadt, wenn ich nach Nordwes...
<br />Der Inhalt wurde aus dem Internet repr...
Inhaltsverzeichnis Canvas-bezogene Dokumente Effe...
Kürzlich stieß ich auf das Problem, ob die Daten b...
Inhaltsverzeichnis JavaScript importieren 1. Inte...
1. MySQL Master-Slave-Asynchronität 1.1 Netzwerkv...
Wenn es um Datenbanken geht, ist eine der am häuf...
Einführung in die Sicherheitslücke Die SigRed-Sic...
Beim Verknüpfen zweier Tabellen konnte kein Fremd...
Ubuntu 20.04 wurde im April 2020 offiziell veröff...
Inhaltsverzeichnis 1. Was ist Lazy Loading von Ro...
Inhaltsverzeichnis Einführung Installieren Anzeig...