Heim Datenbank MySQL-Tutorial myisam和innodb索引实现的不同_MySQL

myisam和innodb索引实现的不同_MySQL

Jun 01, 2016 pm 01:38 PM
记录

bitsCN.com

 

MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址。下图是MyISAM索引的原理图:

myisam和innodb索引实现的不同_MySQL

这里设表一共有三列,假设我们以Col1为主键,则上图是一个MyISAM表的主索引(Primary key)示意。可以看出MyISAM的索引文件仅仅保存数据记录的地址。在MyISAM中,主索引和辅助索引(Secondary key)在结构上没有任何区别,只是主索引要求key是唯一的,而辅助索引的key可以重复。如果我们在Col2上建立一个辅助索引,则此索引的结构如下图所示:

myisam和innodb索引实现的不同_MySQL

 

同样也是一颗B+Tree,data域保存数据记录的地址。因此,MyISAM中索引检索的算法为首先按照B+Tree搜索算法搜索索引,如果指定的Key存在,则取出其data域的值,然后以data域的值为地址,读取相应数据记录。

MyISAM的索引方式也叫做“非聚集”的,之所以这么称呼是为了与InnoDB的聚集索引区分。

 
InnoDB索引实现

虽然InnoDB也使用B+Tree作为索引结构,但具体实现方式却与MyISAM截然不同。

第一个重大区别是InnoDB的数据文件本身就是索引文件。从上文知道,MyISAM索引文件和数据文件是分离的,索引文件仅保存数据记录的地址。而在InnoDB中,表数据文件本身就是按B+Tree组织的一个索引结构,这棵树的叶节点data域保存了完整的数据记录。这个索引的key是数据表的主键,因此InnoDB表数据文件本身就是主索引。

myisam和innodb索引实现的不同_MySQL

上图是InnoDB主索引(同时也是数据文件)的示意图,可以看到叶节点包含了完整的数据记录。这种索引叫做聚集索引。因为InnoDB的数据文件本身要按主键聚集,所以InnoDB要求表必须有主键(MyISAM可以没有),如果没有显式指定,则MySQL系统会自动选择一个可以唯一标识数据记录的列作为主键,如果不存在这种列,则MySQL自动为InnoDB表生成一个隐含字段作为主键,这个字段长度为6个字节,类型为长整形。
 

第二个与MyISAM索引的不同是InnoDB的辅助索引data域存储相应记录主键的值而不是地址。换句话说,InnoDB的所有辅助索引都引用主键作为data域。例如,下图为定义在Col3上的一个辅助索引:

myisam和innodb索引实现的不同_MySQL

这里以英文字符的ASCII码作为比较准则。聚集索引这种实现方式使得按主键的搜索十分高效,但是辅助索引搜索需要检索两遍索引:首先检索辅助索引获得主键,然后用主键到主索引中检索获得记录。
 

了解不同存储引擎的索引实现方式对于正确使用和优化索引都非常有帮助,例如知道了InnoDB的索引实现后,就很容易明白为什么不建议使用过长的字段作为主键,因为所有辅助索引都引用主索引,过长的主索引会令辅助索引变得过大。再例如,用非单调的字段作为主键在InnoDB中不是个好主意,因为InnoDB数据文件本身是一颗B+Tree,非单调的主键会造成在插入新记录时数据文件为了维持B+Tree的特性而频繁的分裂调整,十分低效,而使用自增字段作为主键则是一个很好的选择。
 


bitsCN.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wo kann ich die Aufzeichnungen der Dinge einsehen, die ich auf Pinduoduo gekauft habe? Wie kann ich die Aufzeichnungen der gekauften Produkte einsehen? Wo kann ich die Aufzeichnungen der Dinge einsehen, die ich auf Pinduoduo gekauft habe? Wie kann ich die Aufzeichnungen der gekauften Produkte einsehen? Mar 12, 2024 pm 07:20 PM

Die Pinduoduo-Software bietet viele gute Produkte, die Sie jederzeit und überall kaufen können. Die Qualität jedes Produkts wird streng kontrolliert, jedes Produkt ist echt und es gibt viele Vorzugsrabatte beim Einkaufen, sodass jeder online einkaufen kann. Ich kann einfach nicht aufhören. Geben Sie Ihre Mobiltelefonnummer ein, um sich online anzumelden, fügen Sie online mehrere Lieferadressen und Kontaktinformationen hinzu und prüfen Sie jederzeit die neuesten Logistiktrends. Suchen Sie nach oben und unten, um zu kaufen und eine Bestellung aufzugeben. Sie können den Komfort genießen, ohne das Haus zu verlassen. Mit dem Online-Einkaufsservice können Sie auch alle Einkaufsunterlagen, einschließlich der von Ihnen gekauften Waren, einsehen und erhalten Dutzende von roten Einkaufsumschlägen und Gutscheinen kostenlos Detaillierte Online-Methode zum Anzeigen gekaufter Produktdatensätze. 1. Öffnen Sie Ihr Telefon und klicken Sie auf das Pinduoduo-Symbol.

So zeigen Sie den Linux-Befehlsverlauf an und verwalten ihn So zeigen Sie den Linux-Befehlsverlauf an und verwalten ihn Aug 01, 2023 pm 09:17 PM

So zeigen Sie den Befehlsverlauf unter Linux an: Unter Linux verwenden wir den Befehl „history“, um die Liste aller zuvor ausgeführten Befehle anzuzeigen. Die Syntax ist sehr einfach: „history“ Zu den Optionen für die Kopplung mit dem Befehl „history“ gehören: Optionsbeschreibung –c löscht den Befehlsverlauf für die aktuelle Sitzung –w schreibt den Befehlsverlauf in eine Datei –r lädt den Befehlsverlauf aus der Verlaufsdatei neu – n Begrenzen Sie die Anzahl der Ausgaben der letzten Befehle. Führen Sie einfach den Befehl „history“ aus, um eine Liste aller zuvor ausgeführten Befehle in einem Linux-Terminal anzuzeigen: Zusätzlich zur Anzeige des Befehlsverlaufs können Sie auch den Befehlsverlauf verwalten und Änderungen an zuvor ausgeführten Befehlen vornehmen, rückgängig machen Durchsuchen Sie den Befehlsverlauf oder löschen Sie den Verlauf sogar vollständig

Wie kann ich den Anrufverlauf im iPhone überprüfen und exportieren? Wie kann ich den Anrufverlauf im iPhone überprüfen und exportieren? Jul 05, 2023 pm 12:54 PM

Die Anrufaufzeichnung im iPhone wird oft unterschätzt und ist eine der wichtigsten Funktionen des iPhone. Aufgrund ihrer Einfachheit ist diese Funktion von entscheidender Bedeutung und kann wichtige Erkenntnisse über die auf dem Gerät getätigten oder empfangenen Anrufe liefern. Ob für Arbeitszwecke oder für Gerichtsverfahren, die Möglichkeit, auf Anrufaufzeichnungen zuzugreifen, kann von unschätzbarem Wert sein. Vereinfacht ausgedrückt bezieht sich der Anrufverlauf auf die Einträge, die auf Ihrem iPhone erstellt werden, wenn Sie einen Anruf tätigen oder entgegennehmen. Diese Protokolle enthalten wichtige Informationen, einschließlich des Namens des Kontakts (oder der Nummer, falls nicht als Kontakt gespeichert), Zeitstempel, Dauer und Anrufstatus (gewählt, verpasst oder nicht angenommen). Sie sind eine prägnante Aufzeichnung Ihres Kommunikationsverlaufs. Der Anrufverlauf umfasst auf Ihrem iPhone gespeicherte Anrufverlaufsstreifen

C#-Entwicklungsratschläge: Protokollierungs- und Überwachungssysteme C#-Entwicklungsratschläge: Protokollierungs- und Überwachungssysteme Nov 22, 2023 pm 08:30 PM

C#-Entwicklungsvorschläge: Protokollierungs- und Überwachungssystem Zusammenfassung: Im Softwareentwicklungsprozess sind Protokollierungs- und Überwachungssysteme entscheidende Werkzeuge. In diesem Artikel werden die Rolle und Implementierungsvorschläge von Protokollierungs- und Überwachungssystemen in der C#-Entwicklung vorgestellt. Einleitung: Protokollierung und Überwachung sind wesentliche Werkzeuge in großen Softwareentwicklungsprojekten. Sie können uns helfen, den laufenden Status des Programms in Echtzeit zu verstehen und Probleme schnell zu erkennen und zu lösen. In diesem Artikel wird erläutert, wie Protokollierungs- und Überwachungssysteme in der C#-Entwicklung verwendet werden, um die Softwarequalität und Entwicklungseffizienz zu verbessern. Die Rolle des Protokollierungssystems

So protokollieren und überwachen Sie Java-Entwicklungsprojekte So protokollieren und überwachen Sie Java-Entwicklungsprojekte Nov 03, 2023 am 10:09 AM

So protokollieren und überwachen Sie Java-Entwicklungsprojekte 1. Einführung in den Hintergrund Mit der rasanten Entwicklung des Internets haben immer mehr Unternehmen damit begonnen, Java zu entwickeln und verschiedene Arten von Anwendungen zu erstellen. Im Entwicklungsprozess sind Protokollierung und Überwachung ein wichtiges Bindeglied, das nicht ignoriert werden darf. Durch Protokollierung und Überwachung können Entwickler Probleme rechtzeitig erkennen und lösen, um die Stabilität und Sicherheit von Anwendungen zu gewährleisten. 2. Die Bedeutung der Protokollierung 1. Problemverfolgung: Wenn ein Anwendungsfehler auftritt, kann die Protokollierung uns dabei helfen, das Problem schnell zu lokalisieren.

So zeigen Sie den Verlauf Ihres Medikamentenprotokolls in der Health-App auf dem iPhone an So zeigen Sie den Verlauf Ihres Medikamentenprotokolls in der Health-App auf dem iPhone an Nov 29, 2023 pm 08:46 PM

Mit dem iPhone können Sie Medikamente zur Gesundheits-App hinzufügen, um die Medikamente, Vitamine und Nahrungsergänzungsmittel, die Sie täglich einnehmen, zu verfolgen und zu verwalten. Anschließend können Sie eingenommene oder ausgelassene Medikamente protokollieren, wenn Sie eine Benachrichtigung auf Ihrem Gerät erhalten. Nachdem Sie Ihre Medikamente protokolliert haben, können Sie sehen, wie oft Sie sie eingenommen oder ausgelassen haben, um Ihren Gesundheitszustand besser im Auge zu behalten. In diesem Beitrag zeigen wir Ihnen, wie Sie den Protokollverlauf ausgewählter Medikamente in der Health-App auf dem iPhone anzeigen. Eine kurze Anleitung zum Anzeigen Ihres Medikamentenprotokollverlaufs in der Gesundheits-App: Gehen Sie zu Gesundheits-App>Durchsuchen>Medikamente>Medikamente>Medikament auswählen>Optionen&a

Wie werden Laufkilometer aufgezeichnet? Wo wird die Laufstrecke aufgezeichnet? Wie werden Laufkilometer aufgezeichnet? Wo wird die Laufstrecke aufgezeichnet? Mar 12, 2024 am 11:10 AM

Wir alle wissen, dass es sich bei den oben genannten Programmen um sehr gute Sportarten handelt, mit denen Benutzer verschiedene Sportarten in Echtzeit absolvieren können, und wir können auch einige der oben genannten Flugbahnen während einiger Laufprozesse sehen Benutzer kennen einige der oben genannten Funktionsinformationen nicht, daher werde ich Ihnen heute einige der Inhalte und Erfahrungen gut erklären, damit jeder verschiedene Funktionen besser ausführen kann Tracks und Aufzeichnungen über Ihr eigenes Laufen, verpassen Sie es nicht. Weitere hochwertige Inhalte warten auf Sie. Wenn Sie es auch wissen möchten Schauen Sie sich jetzt den Editor an.​

So löschen Sie den Verlauf auf dem iPhone So löschen Sie den Verlauf auf dem iPhone Jun 29, 2023 pm 01:13 PM

Wie lösche ich den iPhone-Verlauf in Safari? Um Ihren Browser- und Suchverlauf in Apples Safari zu löschen, müssen Sie die App „Einstellungen“ auf Ihrem Gerät öffnen. Nachdem Sie „Einstellungen“ ausgewählt haben, müssen Sie nach unten scrollen und „Safari“ auswählen. Dann erscheint ein weiteres Menü und Sie müssen „Verlauf und Website-Daten löschen“ auswählen. Sie müssen nun „Verlauf und Daten löschen“ aus dem Menü auswählen, wodurch der gesamte Suchverlauf, Browserverlauf, Cookies und Daten aus Apples Safari-Browser gelöscht werden. Das war's, Ihr gesamter bisheriger Browser- und Suchverlauf wird jetzt aus Safari gelöscht. Wenn Sie nicht den gesamten Suchverlauf in Safari löschen möchten

See all articles