Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Interviewfrage 8: Der Unterschied zwischen innoDB und myisam

PHP-Interviewfrage 8: Der Unterschied zwischen innoDB und myisam

不言
不言Original
2018-04-18 09:57:0011759Durchsuche

Der Inhalt dieses Artikels befasst sich mit dem Unterschied zwischen innoDB und myisam, der achten PHP-Interviewfrage. Jetzt kann ich ihn mit Ihnen teilen.

InnoDB:
Unterstützt Transaktionsverarbeitung usw.
Lesen ohne Sperren
Unterstützt Fremdschlüssel
Unterstützt Zeilensperren
Unterstützt keine FULLTEXT-Typ-Indizes
Speichern Sie nicht die spezifische Anzahl von Zeilen in Scannen Sie die Tabelle, um die Anzahl der Zeilen zu berechnen.
Beim Löschen einer Tabelle wird diese Zeile für Zeile gelöscht.
InnoDB speichert Daten und Indizes im Tabellenbereich.
Kann direkt kopiert und plattformübergreifend verwendet werden.
InnoDB muss einen Index vom Typ Feld AUTO_INCREMENT enthalten
Tabellen sind schwer zu komprimieren

MyISAM:
Unterstützt keine Transaktionen, Rollback führt zu unvollständigem Rollback, ist nicht atomar
Wird nicht unterstützt Fremdschlüssel
Unterstützt keine Fremdschlüssel
Unterstützt die Volltextsuche
Speichern Sie die spezifische Anzahl von Zeilen in der Tabelle, geben Sie direkt die Anzahl der gespeicherten Zeilen zurück.
Wenn Sie zuerst die Tabelle löschen Löschen Sie die Tabelle und erstellen Sie sie dann neu.
MyISAM-Tabelle wird in drei Dateien gespeichert. In der FRM-Datei werden Tabellendefinitionen gespeichert. Die Datendatei ist MYD (MYData). Die Indexdatei ist eine Erweiterung von MYI (MYIndex)
Es ist schwierig, direkt plattformübergreifend zu kopieren
In MyISAM können Felder vom Typ AUTO_INCREMENT verwendet werden, um gemeinsame Indizes zu erstellen
Tabellen können komprimiert werden

Wählen Sie:
Weil MyISAM relativ einfach ist und daher in Bezug auf die Effizienz besser ist als InnoDB. Wenn das System mehr liest und weniger schreibt. Geringe Atomizitätsanforderungen. Dann ist MyISAM die beste Wahl. Und die MyISAM-Wiederherstellungsgeschwindigkeit ist hoch. Kann mit Backup direkt überschrieben und wiederhergestellt werden.
Wenn das System weniger liest und mehr schreibt, insbesondere wenn viele gleichzeitige Schreibvorgänge stattfinden. InnoDB ist die erste Wahl.
Beide Typen haben ihre eigenen Vor- und Nachteile. Welche Sie wählen, hängt ganz von Ihrem tatsächlichen Typ ab.

InnoDB:
Unterstützt Transaktionsverarbeitung usw.
Lesen ohne Sperren
Unterstützt Fremdschlüssel
Unterstützt Zeilensperren
Unterstützt keine FULLTEXT-Typ-Indizes
Nicht speichern die Tabelle Die spezifische Anzahl von Zeilen, scannen Sie die Tabelle, um zu berechnen, wie viele Zeilen vorhanden sind
Wenn Sie die Tabelle löschen, wird sie Zeile für Zeile gelöscht
InnoDB speichert die Daten und Indizes im Tabellenbereich
Cross- Plattform kann direkt kopiert und verwendet werden
InnoDB Der Index muss ein Feld vom Typ AUTO_INCREMENT enthalten
Die Tabelle ist schwer zu komprimieren

MyISAM:
Unterstützt keine Transaktionen, ein Rollback führt zu einem unvollständigen Rollback , ist nicht atomar
Unterstützt keine externen Schlüssel
Unterstützt keine Fremdschlüssel
Unterstützt die Volltextsuche
Speichert die spezifische Anzahl von Zeilen in der Tabelle. Ohne Wo wird die Anzahl direkt zurückgegeben gespeicherte Zeilen
Wenn Sie eine Tabelle löschen, löschen Sie zuerst die Tabelle und erstellen Sie dann die Tabelle neu
MyISAM-Tabellen werden in drei Dateien gespeichert. In der FRM-Datei werden Tabellendefinitionen gespeichert. Die Datendatei ist MYD (MYData). Die Indexdatei ist eine Erweiterung von MYI (MYIndex)
Es ist schwierig, direkt plattformübergreifend zu kopieren
In MyISAM können Felder vom Typ AUTO_INCREMENT verwendet werden, um gemeinsame Indizes zu erstellen
Tabellen können komprimiert werden

Wählen Sie:
Weil MyISAM relativ einfach ist und daher in Bezug auf die Effizienz besser ist als InnoDB. Wenn das System mehr liest und weniger schreibt. Geringe Atomizitätsanforderungen. Dann ist MyISAM die beste Wahl. Und die MyISAM-Wiederherstellungsgeschwindigkeit ist hoch. Kann mit Backup direkt überschrieben und wiederhergestellt werden.
Wenn das System weniger liest und mehr schreibt, insbesondere wenn viele gleichzeitige Schreibvorgänge stattfinden. InnoDB ist die erste Wahl.
Beide Typen haben ihre eigenen Vor- und Nachteile. Welche Sie wählen, hängt ganz von Ihrem tatsächlichen Typ ab.

Verwandte Empfehlungen:

php-Interviewfrage 7: So konfigurieren Sie den Nginx-Lastausgleich

php-Interviewfrage 6: Memcache- und Redis-Unterschied

PHP-Interviewfrage 5: Wie Nginx PHP aufruft und die Funktionen und Arbeitsprinzipien von PHP-FPM

Das obige ist der detaillierte Inhalt vonPHP-Interviewfrage 8: Der Unterschied zwischen innoDB und myisam. 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