Heim  >  Artikel  >  Datenbank  >  Relevante Einführung in die Einfügeleistung der MySQL-Optimierung

Relevante Einführung in die Einfügeleistung der MySQL-Optimierung

jacklove
jackloveOriginal
2018-06-09 14:56:051677Durchsuche

MySQL-Einfügeanweisungssyntax

insert into `table`(`field1`,`field2`) values('value1','value2');

Methoden zur Verbesserung der Einfügeleistung
1 SQL-Anweisung zum Einfügen mehrerer Datenelemente

INSERT INTO `insert_table` (`uid`, `content`, `type`) VALUES ('userid_0', 'content_0', 0);
INSERT INTO `insert_table` (`uid`, `content`, `type`) VALUES ('userid_1', 'content_1', 1);

kann als

INSERT INTO `insert_table` (`uid`, `content`, `type`) VALUES ('userid_0', 'content_0', 0), ('userid_1', 'content_1', 1);

geschrieben werden. 2. Verwenden Sie die Transaktion

START TRANSACTION;
INSERT INTO `insert_table` (`uid`, `content`, `type`) VALUES ('userid_0', 'content_0', 0);
INSERT INTO `insert_table` (`uid`, `content`, `type`) VALUES ('userid_1', 'content_1', 1);
...
COMMIT;

Hinweis
1. Die Länge von SQL-Anweisungen ist begrenzt. Bitte achten Sie darauf, wenn Sie SQL-Anweisungen zusammenführen. Die Längenbeschränkung kann über das Konfigurationselement max_allowed_packet geändert werden. Der Standardwert ist 1 MB.
2. Wenn eine Transaktion zu groß ist, wirkt sich dies auf die Ausführungseffizienz aus. Wenn dieser Wert überschritten wird, werden Festplattendaten verwendet, was sich auf die Ausführungseffizienz auswirkt.
Beschreibung des Konfigurationselements zu Transaktionen:
innodb_buffer_pool_size

Wenn Sie Innodb verwenden, ist dies eine wichtige Variable. Im Vergleich zu MyISAM reagiert Innodb empfindlicher auf die Puffergröße. Für MySIAM mag es in Ordnung sein, den Standardwert „key_buffer_size“ für große Datenmengen zu verwenden, aber Innodb fühlt sich langsam an, wenn der Standardwert für große Datenmengen verwendet wird. Der Pufferpool von Innodb speichert Daten und Indizes zwischen, sodass kein Platz für den Systemcache übrig bleibt. Wenn Sie nur Innodb verwenden, können Sie diesen Wert auf 70–80 % des Speichers festlegen. Wie bei key_buffer gilt: Wenn die Datenmenge relativ gering ist und nicht stark zunimmt, sollten Sie diesen Wert nicht zu hoch einstellen, um die Speichernutzung zu erhöhen.
innodb_additional_pool_size
Die Auswirkung davon ist nicht sehr offensichtlich, zumindest wenn das Betriebssystem Speicher angemessen zuweisen kann. Möglicherweise müssen Sie es jedoch trotzdem auf 20 MB oder mehr einstellen, um zu sehen, wie viel Speicher Innodb für andere Zwecke zuweist.
innodb_log_file_size
ist sehr wichtig, wenn Sie viel schreiben, insbesondere große Datenmengen. Beachten Sie, dass größere Dateien eine höhere Leistung bieten, die Wiederherstellung der Datenbank jedoch mehr Zeit in Anspruch nimmt. Ich verwende im Allgemeinen 64 MB bis 512 MB, abhängig vom Platz auf dem Server.
innodb_log_buffer_size
Der Standardwert ist für die meisten Anwendungen mit mittleren Schreibvorgängen und kurzen Transaktionen in Ordnung. Wenn Sie häufig aktualisieren oder viele Blobdaten verwenden, sollten Sie diesen Wert erhöhen. Aber wenn es zu groß ist, ist es auch eine Verschwendung von Speicher, da es immer einmal pro Sekunde geleert wird (wie sagt man dieses Wort auf Chinesisch?), sodass es nicht nötig ist, es auf mehr als 1 Sekunde einzustellen. 8M-16M sollten im Allgemeinen ausreichen. Kleine Anwendungen können kleiner eingestellt werden.
innodb_flush_log_at_trx_commit
Beschweren Sie sich, dass Innodb 100-mal langsamer als MyISAM ist? Dann haben Sie wahrscheinlich vergessen, diesen Wert anzupassen. Der Standardwert 1 bedeutet, dass jeder Transaktions-Commit oder jede Anweisung außerhalb der Transaktion das Protokoll auf die Festplatte schreiben muss (Flush), was sehr zeitaufwändig ist. Insbesondere bei Verwendung eines batteriegepufferten Caches (batteriegepufferter Cache). Die Einstellung auf 2 ist für viele Anwendungen in Ordnung, insbesondere für solche, die aus MyISAM-Tabellen übertragen werden. Dies bedeutet, dass nicht auf die Festplatte, sondern in den Systemcache geschrieben wird. Die Protokolle werden weiterhin jede Sekunde auf die Festplatte geschrieben, sodass Sie im Allgemeinen nicht mehr als 1–2 Sekunden an Aktualisierungen verlieren. Die Einstellung auf 0 ist schneller, aber die Sicherheit ist schlecht. Selbst wenn MySQL hängen bleibt, können Transaktionsdaten verloren gehen. während ein Wert von 2 nur im gesamten Betriebssystem verwendet wird Daten können nur verloren gehen, wenn sie hängen bleiben.
Dieser Artikel erläutert die relevante Einführung zur Optimierung der Einfügeleistung von MySQL. Weitere Informationen finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

So verwenden Sie gängige benutzerdefinierte PHP-Methoden

So verwenden Sie die exklusive ODER-Verschlüsselung (XOR). php /Datei entschlüsseln

So erhalten Sie den Namen einer Variablen über PHP

Das obige ist der detaillierte Inhalt vonRelevante Einführung in die Einfügeleistung der MySQL-Optimierung. 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