Einfach ausgedrückt bedeutet die Tabellenrückgabe, dass MySQL zuerst den Primärschlüsselindex abfragen und dann den Primärschlüsselindex verwenden muss, um die Daten zu lokalisieren.
Nachfolgend analysieren und beantworten wir einige Fragen:
Was ist ein Clustered-Index? Was ist ein nicht gruppierter Index?
Warum müssen wir zuerst den Primärschlüsselindex nachschlagen, wenn wir eine Tabelle zurückgeben?
Was ist der Unterschied zwischen Primärschlüsselindex und Nicht-Primärschlüsselindex?
Wie vermeide ich die Rückgabe des Formulars?
MySQL-Indizes werden aus verschiedenen Perspektiven klassifiziert, z. B. nach Datenstruktur, nach logischer Perspektive und nach physischem Speicher.
Unter diesen gibt es zwei Arten von Indizes, die auf physischer Speicherung basieren: Clustered-Index und Nicht-Clustered-Index.
Einfach ausgedrückt ist Clustered Index ein Primärschlüsselindex.
Neben dem Primärschlüsselindex wird der nicht gruppierte Index auch als Hilfsindex oder Sekundärindex bezeichnet.
Was ist der Unterschied zwischen Primärschlüsselindex und Nicht-Primärschlüsselindex?Gleiche Punkte: Beide verwenden B+Tree.
Unterschiede: Blattknoten speichern unterschiedliche Daten. Die Blattknoten des Primärschlüsselindex speichern eine vollständige Datenzeile Schlüsselwert . Der Blattknoten enthält nicht alle Daten des Datensatzes. Zusätzlich zum zum Sortieren verwendeten Schlüssel enthält der Nicht-Primärschlüssel-Blattknoten auch ein Lesezeichen (Lesezeichen), in dem der Schlüssel des Clustered-Index gespeichert ist.
Was sind also die Unterschiede in der Verwendung zwischen diesen beiden Indizes?
Abfrage mit Primärschlüsselindex:# 主键索引的的叶子节点存储的是**一行完整的数据**, # 所以只需搜索主键索引的 B+Tree 就可以轻松找到全部数据 select * from user where id = 1;
Abfrage mit Nicht-Primärschlüsselindex:
# 非主键索引的叶子节点存储的是**主键值**, # 所以MySQL会先查询到 name 列的索引的 B+Tree,搜索得到对应的主键值 # 然后再去搜索该主键值查询主键索引的 B+Tree 才可以找到对应的数据 select * from user where name = 'Jack';
Ein einfaches Verständnis von B-Tree und B+Tree
Der Schlüssel zum Verständnis von Clustered-Indizes und Nicht-Clustered-Indizes liegt im Verständnis von B+Tree.
Verwenden Sie ein Bild zur Darstellung, der Rest wird nicht zu viel erklärt:
In Nur B+Tree-Blattknoten haben Zeiger auf Datensätze, während alle Knoten im B-Baum Zeiger haben und Indexelemente, die in internen Knoten erscheinen, nicht mehr in Blattknoten erscheinen.
Alle Blattknoten im B+-Baum sind durch Zeiger miteinander verbunden, während dies beim B-Baum nicht der Fall ist.
Wie vermeide ich die Rückgabe des Formulars?
Das obige ist der detaillierte Inhalt vonWorauf bezieht sich die MySQL-Tabellenrückgabe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!