B-Baum wird auch als ausgeglichener Mehrpfad-Suchbaum (nicht binär) bezeichnet Reduzieren Sie den Zwischenvorgang, der beim Aufzeichnen auftritt, und beschleunigen Sie so den Zugriff.
Schlüsselwert des linken untergeordneten Knotens
(Schlüssel ist der Schlüsselwert des Datensatzes. Für verschiedene Datensätze unterscheidet sich der Schlüssel voneinander; Daten sind die Daten im Datensatz mit Ausnahme des Schlüssels)
B+Tree ist ein verbesserter B-Baum.
(Schlüssel ist der Schlüsselwert des Datensatzes. Für verschiedene Datensätze unterscheidet sich der Schlüssel voneinander; Daten sind die Daten im Datensatz mit Ausnahme des Schlüssels)
Kompatibel mit B-Tree Im Vergleich zu B+Tree gibt es folgende Unterschiede:
Die Obergrenze des Zeigers jedes Knotens beträgt 2d statt 2d+1.
Interne Knoten speichern keine Daten, nur Schlüssel speichern keine Zeiger.
Die mechanische Festplatte des Computers. Um die Wartezeit für mechanische Bewegungen zu amortisieren, greift die Festplatte auf mehrere zu Nicht eins, eine solche Informationseinheit, die gleichzeitig gelesen wird, ist eine Seite. Wir können die Anzahl der gelesenen oder geschriebenen Seiten als Hauptnäherungswert für die Gesamtzeit des Festplattenzugriffs verwenden . B-Tree-Algorithmen müssen zu jedem Zeitpunkt nur eine bestimmte Anzahl von Seiten im Speicher behalten. Das Design von B-Tree berücksichtigt das Vorlesen der Festplatte. Ein B-Tree-Knoten ist normalerweise so groß wie eine vollständige Festplattenseite (Seite), und die Größe der Festplattenseite begrenzt die untergeordneten Elemente, die ein B-Tree enthält. Der Baumknoten kann die Anzahl (Verzweigungsfaktor) enthalten. Dies hängt natürlich auch von der Größe eines Schlüsselworts im Verhältnis zu einer Seite ab.
Um E/A-Vorgänge zu minimieren, werden Festplattenlesevorgänge jedes Mal im Voraus gelesen, und die Größe ist normalerweise ein ganzzahliges Vielfaches der Seite. Selbst wenn nur ein Byte gelesen werden muss, liest die Festplatte eine Datenseite (normalerweise 4 KB) und legt sie in Seiteneinheiten im Speicher ab. Denn das Lokalitätsprinzip besagt, dass bei der üblichen Nutzung eines Datenelements auch unmittelbar benachbarte Daten genutzt werden. B-Baum: Wenn für einen Abruf der Zugriff auf 4 Knoten erforderlich ist, verwendet der Datenbanksystemdesigner das Prinzip des Festplatten-Vorauslesens, um die Größe des Knotens als eine Seite zu entwerfen, sodass für das Lesen eines Knotens nur ein I erforderlich ist /O-Vorgang: Um diesen Abrufvorgang abzuschließen, sind bis zu 3 E/As erforderlich (der Stammknoten befindet sich im Speicher).Je kleiner der Datensatz, desto mehr Daten werden in jedem Knoten gespeichert, desto kleiner ist die Höhe des Baums, desto weniger E/A-Vorgänge und desto höher ist die Abrufeffizienz.
B+Baum: Nicht-Blattknoten speichern nur Schlüssel, wodurch die Größe von Nicht-Blattknoten erheblich reduziert wird, sodass jeder Knoten mehr Datensätze speichern kann.Der Baum ist kürzer und erfordert weniger E/A . B+Tree hat also eine bessere Leistung.
Was ist ein Index?Ein Index ist einfach eine Datenstruktur. Die Kosten für die IndizierungDie Indizierung hat auch ihren Preis: Die Indexdatei selbst verbraucht Speicherplatz und der Index erhöht die Belastung durch das Einfügen, Löschen und Ändern von Datensätzen Außerdem werden Ressourcen verbraucht, um Indizes zu verwalten, sodass mehr Indizes nicht immer besser sind. Im Allgemeinen wird die Erstellung eines Index unter zwei Umständen nicht empfohlen.Der erste Fall besteht darin, dass die Tabellendatensätze relativ klein sind.
Der andere Fall, in dem die Erstellung eines Index nicht empfohlen wird, besteht darin, dass der Index selektiv ist niedrig. Die sogenannte Indexselektivität bezieht sich auf das Verhältnis eindeutiger Indexwerte (auch Kardinalität genannt) zur Anzahl der Tabellendatensätze (#T)
2. Eindeutiger Index
3. Primärschlüsselindex
4. Kombinierter Index
Der sogenannte Clustered-Index bedeutet, dass die Hauptindexdatei und die Datendatei dieselbe Datei sind, die hauptsächlich in der Innodb-Speicher-Engine verwendet wird. In dieser Indeximplementierung sind die Daten auf den Blattknoten von B+Tree die Daten selbst und der Schlüssel ist der Primärschlüssel. Wie unten gezeigt:
(t1-Tabelle)
(t2-Tabelle)
(Datei, die der Datenbank entspricht)
Weil von InnoDB Die Datendateien selbst müssen nach Primärschlüssel aggregiert werden, daher erfordert InnoDB, dass die Tabelle einen Primärschlüssel haben muss (MyISAM hat möglicherweise keinen, wenn nicht explizit angegeben, wählt das MySQL-System automatisch eine Spalte aus, die die eindeutig identifizieren kann). Wenn keine solche Spalte vorhanden ist, generiert MySQL automatisch ein implizites Feld als Primärschlüssel für die InnoDB-Tabelle. Die Länge dieses Felds beträgt 6 Bytes und der Typ ist lang.
:
MyISAM ist nicht transaktionssicher, während InnoDB transaktionssicher ist.
Die Granularität von MyISAM-Sperren erfolgt auf Tabellenebene, während InnoDB Sperren auf Zeilenebene unterstützt.
MyISAM unterstützt den Volltexttypindex, InnoDB unterstützt jedoch keinen Volltextindex.
MyISAM ist relativ einfach und daher hinsichtlich der Effizienz besser als InnoDB. Kleine Anwendungen können die Verwendung von MyISAM in Betracht ziehen.
MyISAM-Tabellen werden in Form von Dateien gespeichert. Die Verwendung von MyISAM-Speicher bei der plattformübergreifenden Datenübertragung erspart Ihnen viel Ärger.
InnoDB-Tabellen sind sicherer als MyISAM-Tabellen. Sie können nicht-transaktionale Tabellen in transaktionale Tabellen umwandeln (alter table tablename type=innodb) und dabei sicherstellen, dass keine Daten verloren gehen.
Anwendungsszenario:
MyISAM verwaltet nicht-transaktionale Tabellen. Es bietet Hochgeschwindigkeitsspeicherung und -abruf sowie Volltextsuchfunktionen. Wenn Ihre Anwendung eine große Anzahl von SELECT-Abfragen ausführen muss, ist MyISAM die bessere Wahl.
InnoDB wird für Transaktionsverarbeitungsanwendungen verwendet und verfügt über zahlreiche Funktionen, einschließlich ACID-Transaktionsunterstützung. Wenn Ihre Anwendung eine große Anzahl von INSERT- oder UPDATE-Vorgängen ausführen muss, sollten Sie InnoDB verwenden, was die Leistung gleichzeitiger Mehrbenutzer-Vorgänge verbessern kann.
Abrufvorgang
Wenn das System den Hauptspeicher lesen muss, wird das Adresssignal auf den Adressbus gelegt und an den weitergeleitet Hauptspeicher Nachdem der Hauptspeicher das Adresssignal gelesen hat, analysiert er das Signal, lokalisiert die angegebene Speichereinheit und legt dann die Daten dieser Speichereinheit auf den Datenbus, damit andere Komponenten sie lesen können.
Der Vorgang des Schreibens in den Hauptspeicher ist ähnlich. Das System platziert die Geräteadresse und die zu schreibenden Daten auf dem Adressbus bzw. dem Datenbus. Der Hauptspeicher liest den Inhalt der beiden Busse und führt entsprechende Schreibvorgänge aus.
Hier ist zu erkennen, dass die Zeit des Hauptspeicherzugriffs nur linear mit der Anzahl der Zugriffe zusammenhängt. Da keine mechanische Operation erfolgt, hat die „Entfernung“ der Daten, auf die zweimal zugegriffen wird, keinen Einfluss auf die Zeit. Zum Beispiel zuerst abrufen Der Zeitaufwand für das Abrufen von A0 und dann für A1 ist derselbe wie für das Abrufen von A0 und dann für D3
Wenn Daten von der Festplatte gelesen werden müssen, wird die Das System leitet die logische Datenadresse an die Festplatte weiter. Die Steuerschaltung der Festplatte übersetzt die logische Adresse gemäß der Adressierungslogik in eine physische Adresse, d. h. sie bestimmt, auf welcher Spur und in welchem Sektor sich die zu lesenden Daten befinden. Um die Daten in diesem Sektor zu lesen, muss der Magnetkopf über diesem Sektor platziert werden. Dazu muss sich der Magnetkopf bewegen, um ihn an der entsprechenden Spur auszurichten. Dieser Vorgang wird als Suchen bezeichnet wird als Suchzeit bezeichnet. Der Zielsektor wird unter dem Kopf gedreht. Die für diesen Vorgang aufgewendete Zeit wird als Rotationszeit bezeichnet.
Das Obige ist eine ausführliche und detaillierte Erklärung des MySQL-Index und der Struktur. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!