Heim  >  Artikel  >  Datenbank  >  Der Unterschied zwischen InnoDB und MyISAM in MySQL

Der Unterschied zwischen InnoDB und MyISAM in MySQL

Guanhui
GuanhuiOriginal
2020-06-04 11:01:032844Durchsuche

Der Unterschied zwischen InnoDB und MyISAM in MySQL

Der Unterschied zwischen InnoDB und MyISAM in MySQL

Transaktionen und Fremdschlüssel

InnoDB verfügt über Transaktionen, die 4 Transaktionsisolationsstufen, Rollback, Wiederherstellungsfunktionen nach Abstürzen und die Sicherheit gleichzeitiger Transaktionen in mehreren Versionen, einschließlich ACID, unterstützen. Wenn Ihre Anwendung eine große Anzahl von INSERT- oder UPDATE-Vorgängen ausführen muss, sollten Sie InnoDB verwenden, das die Leistung gleichzeitiger Mehrbenutzer-Vorgänge verbessern kann

MyISAM verwaltet Nicht-Transaktionstabellen. Es bietet Hochgeschwindigkeitsspeicherung und -abruf sowie Volltextsuchfunktionen. Wenn die Anwendung eine große Anzahl von SELECT-Abfragen ausführen muss, ist MyISAM die bessere Wahl

2. Volltextindex

Innodb unterstützt keinen Volltext Index, wenn Sie ihn verwenden müssen, verwenden Sie am besten Suchmaschinen wie Sphinx. Myisam unterstützt Chinesisch nicht sehr gut

Aber die neue Version von Innodb unterstützt es bereits

3. Sperren

MySQL unterstützt drei Sperrstufen Ebene, Seitenebene, Tabellenebene;

MyISAM unterstützt Sperren auf Tabellenebene und bietet nicht sperrende Lese-SELECTs im Einklang mit dem Oracle-Typ

InnoDB unterstützt Sperren auf Zeilenebene, Zeilensperren von InnoDB-Tabellen sind nicht absolut. Wenn MySQL beim Ausführen einer SQL-Anweisung den zu scannenden Bereich nicht ermitteln kann, sperrt die InnoDB-Tabelle auch die Auswirkungen von Lückensperren

Aktualisieren Sie beispielsweise die Tabelle set num= 1 mit Namen wie „%aaa%“

4. Speicherung

MyISAM wird in drei Dateien auf der Festplatte gespeichert. Der Name der ersten Datei beginnt mit dem Namen der Tabelle und die Erweiterung gibt den Dateityp an. Die Erweiterung der Datendatei ist .MYI

Festplattenbasierte Ressourcen sind die InnoDB-Tabellenbereichsdatendatei und ihre Protokolldatei. Die Größe der InnoDB-Tabelle ist nur durch die Größe der Betriebssystemdatei begrenzt

Hinweis: MyISAM-Tabellen werden in Form von Dateien gespeichert. Die Verwendung von MyISAM-Speicher bei der plattformübergreifenden Datenübertragung erspart Ihnen viel Ärger

Index

InnoDB (Index-organisierte Tabelle) verwenden Der Clustered-Index und der Index sind Daten, die nacheinander gespeichert werden, sodass der Index zwischengespeichert werden kann, und die Daten können auch zwischengespeichert werden

MyISAM (Heap-organisierte Tabelle) verwendet einen nicht gruppierten Index, der Index ist von der Datei getrennt und wird zufällig gespeichert und kann nur den Index zwischenspeichern

6. Parallelität

MyISAM-Lese- und Schreibblock einander: Es blockiert nicht nur das Lesen beim Schreiben, MyISAM blockiert auch das Schreiben beim Lesen. Die Lese- und Schreibblockierung von InnoDB hängt mit der Transaktionsisolationsstufe zusammen

Empfohlene Tutorials: „

PHP-Tutorial

" "MySQL-Tutorial

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen InnoDB und MyISAM in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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