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

Vue nutzt Baidu Maps zur Realisierung der Stadtpositionierung

In diesem Artikel wird der spezifische Code von V...

So lassen Sie eine Remoteverbindung in MySql zu

So lassen Sie eine Remoteverbindung in MySql zu U...

Spezifische Verwendung von useRef in React

Ich glaube, dass Leute, die Erfahrung mit React h...

Vue.js implementiert ein einfaches Faltpanel

In diesem Artikelbeispiel wird der spezifische Co...

Tutorial zur Installation von Ceph Distributed Storage mit Yum unter Centos7

Inhaltsverzeichnis Vorwort Konfigurieren Sie die ...

Implementierung der Docker-Container-Verbindung und -Kommunikation

Die Portzuordnung ist nicht die einzige Möglichke...

Detaillierte Verwendung des JS-Arrays für jede Instanz

1. forEach() ist ähnlich wie map(). Es wendet ebe...

Die Hauptidee zum dynamischen Festlegen von Routing-Berechtigungen in Vue

Ich habe zuvor einige dynamische Routing-Einstell...

So umbrechen Sie das HTML-Titelattribut

Als ich vor ein paar Tagen ein Programm schrieb, w...

Umfassender Vergleich und Bewertung des Vue-Code-Hervorhebungs-Plugins

Inhaltsverzeichnis Umfassender Vergleich Aus der ...