Heim  >  Artikel  >  Datenbank  >  Eine detaillierte Einführung, wie MySQL die Geschwindigkeit beim Einfügen von Datensätzen optimiert

Eine detaillierte Einführung, wie MySQL die Geschwindigkeit beim Einfügen von Datensätzen optimiert

黄舟
黄舟Original
2017-03-17 14:21:141735Durchsuche

Beim Einfügen von Datensätzen sind die Hauptfaktoren, die sich auf die Einfügegeschwindigkeit auswirken, Index, Eindeutigkeitsüberprüfung, die Anzahl der gleichzeitig eingefügten Datensätze usw. Abhängig von diesen Situationen kann die Optimierung separat durchgeführt werden. In diesem Abschnitt werden verschiedene Methoden zur Optimierung der Geschwindigkeit beim Einfügen von Datensätzen vorgestellt. Werfen wir einen Blick mit dem Editor unten

Beim Einfügen von Datensätzen sind die Hauptfaktoren, die sich auf die Einfügegeschwindigkeit auswirken, die Indizierung, die Überprüfung der Eindeutigkeit und die Anzahl der gleichzeitig eingefügten Datensätze. Abhängig von diesen Situationen kann die Optimierung separat durchgeführt werden. In diesem Abschnitt werden verschiedene Methoden zur Optimierung der Geschwindigkeit beim Einfügen von Datensätzen vorgestellt.

1. Gängige Optimierungsmethoden für MyISAM-Engine-Tabellen sind wie folgt:

1. Beim Einfügen von Datensätzen in eine nicht leere Tabelle indiziert MySQL die eingefügten Datensätze basierend auf dem Index der Tabelle. Wenn Sie eine große Datenmenge einfügen, verlangsamt die Indizierung die Geschwindigkeit beim Einfügen von Datensätzen. Um dieses Problem zu lösen, können Sie den Index vor dem Einfügen des Datensatzes deaktivieren und nach dem Einfügen der Daten aktivieren. Die Anweisung zum Deaktivieren des Index lautet: ALTER TABLE tb_name DISABLE KEYS; Die Anweisung zum erneuten Aktivieren des Index lautet: ALTER TABLE table_name ENABLE KEYS; Für den Stapelimport von Daten aus leeren Tabellen ist dieser Vorgang nicht erforderlich, da dies bei der MyISAM-Engine-Tabelle der Fall ist importiert, nachdem die Daten indiziert wurden.

2. Eindeutigkeitsprüfung deaktivieren: Wenn Daten eingefügt werden, führt MySQL eine Eindeutigkeitsprüfung für den eingefügten Datensatz durch. Diese Eindeutigkeitsprüfung verlangsamt auch die Geschwindigkeit beim Einfügen von Datensätzen. Um die Auswirkungen dieser Situation auf die Abfragegeschwindigkeit zu reduzieren, können Sie die Eindeutigkeitsprüfung vor dem Einfügen von Datensätzen deaktivieren und sie dann nach dem Einfügen der Datensätze aktivieren. Die Anweisung zum Deaktivieren der Eindeutigkeitsprüfung lautet: SET UNIQUE_CHECKS=0; die Anweisung zum Aktivieren der Eindeutigkeitsprüfung lautet: SET UNIQUE_CHECKS=1;

Verwenden Sie eine INSERT-Anweisung, um mehrere Datensätze einzufügen. Zum Beispiel INSERT INTO table_name VALUES(....),(....),(....) 4. Verwenden Sie LOAD DATA INFILE, um bei Bedarf einen Stapelimport durchzuführen um Daten in Stapeln zu importieren. Wenn Sie die LOAD DATA INFILE-Anweisung verwenden, um Daten schneller zu importieren als mit der INSERT-Anweisung.

2. Für InnoDB-Engine-Tabellen sind gängige Optimierungsmethoden wie folgt:

1. Deaktivieren Sie die Eindeutigkeitsprüfung.

Wie bei der MyISAM-Engine, setzen Sie diesen Wert auf 1, nachdem Sie Daten über SET UNIQUE_CHECKS=0; importiert haben. ​ 2. Deaktivieren Sie die Fremdschlüsselprüfung.

Deaktivieren Sie die Fremdschlüsselabfrage vor dem Einfügen von Daten und setzen Sie die Fremdschlüsselprüfung fort, nachdem das Einfügen der Daten abgeschlossen ist. Die Anweisung zum Deaktivieren der Fremdschlüsselprüfung lautet: SET FOREIGN_KEY_CHECKS=0; Die Anweisung zum Wiederherstellen der Fremdschlüsselprüfung lautet: SET FOREIGN_KEY_CHECKS=1; 3. Deaktivieren Sie die automatische Übermittlung.

Deaktivieren Sie die automatische Übermittlung von Transaktionen vor dem Einfügen von Daten. Führen Sie nach Abschluss des Datenimports den Wiederherstellungsvorgang für die automatische Übermittlung durch. Die Anweisung zum Deaktivieren der automatischen Übermittlung lautet: SET AUTOCOMMIT=0; Um die automatische Übermittlung wiederherzustellen, setzen Sie einfach den Wert auf 1.

Das obige ist der detaillierte Inhalt vonEine detaillierte Einführung, wie MySQL die Geschwindigkeit beim Einfügen von Datensätzen optimiert. 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