MySQL-Optimierung INSERT-Geschwindigkeit wird aufgrund von Indizes verlangsamt

MySQL-Dokumente sagen :

Die Größe der Tabelle verlangsamt das Einfügen von Indizes um log N, vorausgesetzt, B-Tree-Indizes.

Bedeutet dies, dass beim Einfügen jeder neuen Zeile die Einfügungsgeschwindigkeit um den Faktor log N verringert wird, wobei N die Anzahl der Zeilen ist? auch wenn ich alle zeilen in nur eine abfrage einfüge? d.h.

INSERT INTO mytable VALUES (1,1,1), (2,2,2),  (3,3,3), .... ,(n,n,n)

Wobei n ~ 70.000 ist

Ich habe derzeit ~ 1,47 Millionen Zeilen in einer Tabelle mit der folgenden Struktur:

CREATE TABLE mytable (
   `id` INT,
   `value` MEDIUMINT(5),
   `date` DATE,
   PRIMARY_KEY(`id`,`date`)
) ENGINE = InnoDB

Wenn ich auf die oben erwähnte Weise in eine Transaktion einfüge, beträgt die Festschreibungszeit ~ 275 Sekunden. Wie kann ich das optimieren, da jeden Tag neue Daten hinzugefügt werden und die Einfügezeit immer langsamer wird?

Gibt es auch etwas anderes als nur Fragen, die helfen könnten? vielleicht einige Konfigurationseinstellungen?

Mögliche Methode 1 - Entfernen von Indizes

Ich habe gelesen, dass das Entfernen von Indizes kurz vor dem Einfügen die Einfügegeschwindigkeit verbessern kann. Und nach Einfügungen füge ich den Index erneut hinzu. Aber hier ist der einzige Index der Primärschlüssel, und das Löschen hilft meiner Meinung nach nicht viel. Auch während der Primärschlüssel istfallen gelassen , werden alle ausgewählten Abfragen langsam lähmend.

Ich kenne keine anderen möglichen Methoden.

Bearbeiten: Hier sind einige Tests zum Einfügen von ~ 60.000 Zeilen in die Tabelle mit ~ 1,47 Mio. Zeilen:

Verwenden der oben beschriebenen einfachen Abfrage: 146 Sekunden

Verwenden der LOAD DATA-Datei von MySQL: 145 Sekunden

Verwenden der LOAD DATA-Datei von MySQL und Aufteilen der CSV-Dateien, wie von David Jashi in seiner Antwort vorgeschlagen: 136 Sekunden für 60 Dateien mit jeweils 1000 Zeilen, 136 Sekunden für 6 Dateien mit jeweils 10.000 Zeilen

Primärschlüssel entfernen und erneut hinzufügen: Das Entfernen des Schlüssels dauerte 11 Sekunden, 0,8 Sekunden für das Einfügen von Daten, aber 153 Sekunden für das erneute Hinzufügen des Primärschlüssels, insgesamt ~ 165 Sekunden

Antworten auf die Frage(3)

Ihre Antwort auf die Frage