MySQL-Schleife fügt zig Millionen Daten ein

MySQL-Schleife fügt zig Millionen Daten ein

1. Erstellen Sie eine Testtabelle

Tabelle `mysql_genarate` erstellen (
 `id` int(11) NICHT NULL AUTO_INCREMENT,
 `uuid` varchar(50) DEFAULT NULL,
 PRIMÄRSCHLÜSSEL (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5999001 DEFAULT CHARSET=utf8;

2. Erstellen Sie eine gespeicherte Prozedur zum Einfügen einer Schleife

CREATE DEFINER=`root`@`localhost` VERFAHREN `test_two1`()
  BEGINNEN 
  DECLARE i INT DEFAULT 0;
  WÄHREND i < 3000 DO
    INSERT INTO mysql_genarate (uuid) VALUES(UUID());
    Setze i = i + 1;
  ENDE WÄHREND;
ENDE

Wenn Sie den Test call test_two1() aufrufen, dauert es mehrere Minuten, um 10.000 Daten zu testen. Wenn es sich um zig Millionen Daten handelt, ist diese Geschwindigkeit unerträglich.

3. Gespeicherte Prozeduren optimieren

Verwenden Sie die Batch-Einfügung einer SQL-Anweisung

CREATE DEFINER=`root`@`localhost` PROCEDURE `insertPro`( IN sum INT )
  BEGINNEN
  DECLARE-Anzahl INT DEFAULT 0;
  DECLARE i INT DEFAULT 0;
  SET @exesql = concat( "in mysql_genarate(uuid)-Werte einfügen" );
  SET @exedata = "";
  SET-Anzahl = 0;
  Setze i = 0;
  WHILE Anzahl < Summe DO
    SET @exedata = concat( @exedata, ",(UUID())" );
    SET Anzahl = Anzahl + 1;
    Setze i = i + 1;
    WENN i % 1000 = 0 DANN
      SET @exedata = SUBSTRING( @exedata, 2 );
      SET @exesql = concat( "Werte in mysql_genarate(uuid) einfügen", @exedata );
      Anweisung VORBEREITEN VON @exesql;
      Anweisung ausführen;
      DEALLOCATE PREPARE-Anweisung;
      SET @exedata = "";
    ENDE, WENN;
  ENDE WÄHREND;
  WENN Länge( @exedata ) > 0 DANN
    SET @exedata = SUBSTRING( @exedata, 2 );
    SET @exesql = concat( "Werte in mysql_genarate(uuid) einfügen", @exedata );
    Anweisung VORBEREITEN VON @exesql;
    Anweisung ausführen;
    DEALLOCATE PREPARE-Anweisung;
  ENDE, WENN;
ENDE

Der Aufruf von insertPro(10000) dauert einige Zehntelsekunden, was akzeptabel ist.

Oben sind die Details der MySQL-Schleifeneinfügung von zig Millionen Daten aufgeführt. Weitere Informationen zur MySQL-Schleifeneinfügung finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Schritte zum Importieren von Millionen von Daten in MySQL mit .Net Core
  • .Net Core importiert zig Millionen Daten in MySQL-Datenbank
  • Detaillierte Erläuterung der MySQL-Datenbank mit zig Millionen Datenabfragen und -speicherungen
  • Optimierung der Abfragegeschwindigkeit von MySQL mit mehreren zehn Millionen Daten mithilfe von Indizes
  • So paginieren Sie schnell MySQL-Datenmengen im zweistelligen Millionenbereich
  • Optimierung der Leistung von Paging-Abfragen für MySQL mit mehreren zehn Millionen Daten
  • Wie lassen sich MySQL-Tabellen mit mehreren zehn Millionen Daten optimieren?
  • Austausch von Ideen zur Verarbeitung von Millionen von Daten in einer einzigen MySQL-Tabelle

<<:  Verwendung des Linux-Befehls bzip2

>>:  Vue verwendet Plug-Ins, um Bilder proportional zuzuschneiden

Artikel empfehlen

MySQL-Gruppe durch Gruppieren mehrerer Felder

Bei täglichen Entwicklungsaufgaben verwenden wir ...

So kopieren Sie schnell große Dateien unter Linux

Daten kopieren Beim Remote-Kopieren von Daten ver...

Webdesigner ist ein geeignetes Talent

<br />Es gibt keine Straße auf der Welt. Wen...

So benennen Sie in Linux mehrere Dateien gleichzeitig um

Vorwort In unserer täglichen Arbeit müssen wir hä...

So erstellen Sie eine MySQL-Master-Slave-Datenbank mit Docker unter MacOS

1. Ziehen Sie das MySQL-Image Holen Sie sich das ...

Zusammenfassung der Berechtigungsprobleme bei gespeicherten MySQL-Prozeduren

Ja, gespeicherte MySQL-Prozeduren scheinen sehr s...

Swiper+echarts realisiert den Links- und Rechts-Scrolleffekt mehrerer Dashboards

In diesem Artikel wird der spezifische Code von S...

jQuery-Plugin zur Implementierung des sekundären Akkordeonmenüs

Dieser Artikel verwendet ein jQuery-Plugin, um ei...

Lösung für die Baidu-Site-Suche, die https nicht unterstützt (getestet)

Seit kurzem ist https auch auf dem Handy möglich....

Detaillierte Erklärung der Filter und Anweisungen in Vue

Inhaltsverzeichnis benutzerdefinierte Vue-Direkti...