Was ist der Unterschied zwischen MyISAM und InnoDB von mySQL? Wie optimiert man die MySQL-Datenbank?

WBOY
Freigeben: 2016-08-08 09:20:43
Original
1074 Leute haben es durchsucht

Grundlegende Unterschiede zwischen MyISAM und InnoDB

1. InnoDB unterstützt keine FULLTEXT-Typ-Indizes.

2. InnoDB speichert nicht die spezifische Anzahl von Zeilen in der Tabelle. Das heißt, wenn InnoDB die gesamte Tabelle durchsucht Berechnen Sie, wie viele Zeilen es gibt. MyISAM liest jedoch einfach die Anzahl der gespeicherten Zeilen. Beachten Sie, dass die Operationen der beiden Tabellen identisch sind, wenn die count(*)-Anweisung eine Where-Bedingung enthält.

3. Für Felder vom Typ AUTO_INCREMENT muss InnoDB einen Index nur mit diesem Feld enthalten, aber in der MyISAM-Tabelle kann ein gemeinsamer Index mit anderen Feldern eingerichtet werden.

4. Beim LÖSCHEN AUS DER Tabelle erstellt InnoDB die Tabelle nicht neu, sondern löscht sie Zeile für Zeile. MyISAM ist eine Tabelle und innodb ist eine Zeilensperre

5. Der Vorgang LOAD TABLE FROM MASTER (aus der Hauptladetabelle) funktioniert nicht für InnoDB. Die Lösung besteht darin, zuerst die InnoDB zu ändern Tabelle in MyISAM-Tabellen können nach dem Importieren von Daten in InnoDB-Tabellen geändert werden, dies gilt jedoch nicht für Tabellen, die zusätzliche InnoDB-Funktionen (z. B. Fremdschlüssel) verwenden.

Außerdem ist die Zeilensperre der InnoDB-Tabelle nicht absolut. Wenn MySQL beim Ausführen einer SQL-Anweisung den zu scannenden Bereich nicht ermitteln kann, sperrt die InnoDB-Tabelle auch die gesamte Tabelle , wie z. B. Aktualisierungstabellensatz Nr. = 1, wobei der Name „2 %“ lautet.

6.InnoDB unterstützt Dinge

Wählen Sie die Speicher-Engine aus entsprechend der tatsächlichen Situation.

Im Allgemeinen wird empfohlen, myIsam für Abfragen zu verwenden

Wenn Sie Transaktionsverarbeitung oder Fremdschlüssel benötigen, dann InnoDB ist möglicherweise besser. Methode zur Optimierung der MYSQL-Datenbank:

1 das definierte Feld so weit wie möglich und die Feldeinstellung NICHT NULL, z. B. „Provinz, Geschlecht“, wird am besten auf ENUM gesetzt

2, verwenden Sie Join anstelle einer Unterabfrage

3, Verwenden Sie Union (UNION), um manuell erstellte temporäre Tabellen zu ersetzen

4 Wenn beide wahr sind, werden beide ausgeführt und einer schlägt fehl.

5. Einen Index richtig erstellen (wie erstellt man einen Index? Was sind die Vorteile). und Nachteile der Indizierung?)

6. SQL-Anweisungen optimieren

7, erklären Sie den MySQL-Ausführungsplan

8, Untertabelle (vertikale Untertabelle, horizontale Untertabelle?)

Verwandte Lektüre

http ://www.phpernote.com/mysql/500.html

http ://www.nowamagic.net/librarys/veda/detail/1899

Das Obige stellt den Unterschied zwischen MyISAM und InnoDB von MySQL vor? Wie optimiert man die MySQL-Datenbank? Ich hoffe, dass es Freunden, die sich für PHP-Tutorials interessieren, hilfreich sein wird, einschließlich relevanter Inhalte.

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage