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

Detaillierte Erklärung der grundlegenden Syntax und Datentypen von JavaScript

Inhaltsverzeichnis JavaScript importieren 1. Inte...

Mehrere Lösungen für die Ausrichtung von CSS-Datensatztextsymbolen

Während der Entwicklung kommt es sehr häufig vor,...

Führen Sie die Schritte zur Verwendung von mock.js im Vue-Projekt aus

Verwenden von mock.js im Vue-Projekt Auswahl des ...

So installieren Sie MySQL für Anfänger (erwiesenermaßen effektiv)

1. Software-Download MySQL-Download und -Installa...

So erhalten Sie Root-Berechtigungen in einem Docker-Container

Zunächst muss Ihr Container laufen Sie können die...

Verwendung und Verschönerung von HTML-Blockquote-Tags

Definition und Verwendung von Blockquote Das Tag ...

Vue.js implementiert Kalenderfunktion

In diesem Artikelbeispiel wird der spezifische Co...

JavaScript implementiert die Kontrollkästchenauswahlfunktion

In diesem Artikelbeispiel wird der spezifische Ja...

calc(), um einen Vollbild-Hintergrundinhalt mit fester Breite zu erreichen

In den letzten Jahren gab es im Webdesign einen T...

React-Prinzipien erklärt

Inhaltsverzeichnis 1. setState() Beschreibung 1.1...