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
Warum kann es die Höhe festlegen, aber im Gegensat...
PS: So deaktivieren Sie die Remote-Anmeldung des ...
Ergebnisse erzielen Implementierungscode html <...
Inhaltsverzeichnis Was ist ein binärer Suchbaum (...
Ich habe so lange mit PHP zu tun gehabt, aber die...
Gestern wollte ich a:visited verwenden, um die Fa...
Docker erfreut sich immer größerer Beliebtheit. E...
Heute werde ich über einen CSS-Spezialeffekt spre...
Inhaltsverzeichnis MySQL-Berechtigungskontrolle B...
MySQL-Sicherung Kaltes Backup:停止服務進行備份,即停止數據庫的寫入H...
emmm, der Name ist nur eine zufällige Vermutung 2...
Lassen Sie mich zunächst über die allgemeine Idee...
Vorwort Dieser Artikel stellt hauptsächlich die r...
Vorwort Kürzlich wurde ich in einem Interview gef...
Inhaltsverzeichnis benutzerdefinierte Vue-Direkti...