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

Implementierung der React-Sternebewertungskomponente

Voraussetzung ist die Eingabe der Bewertungsdaten...

Detaillierte Erläuterung der Vue-Projektoptimierung und -verpackung

Inhaltsverzeichnis Vorwort 1. Lazy Loading-Routin...

So vergessen Sie das Passwort von Jenkins in Linux

1. Jenkins-Installationsschritte: https://www.jb5...

Zusammenfassung einiger Gedanken zur Binlog-Optimierung in MySQL

Frage Frage 1: Wie kann der Leistungsverlust beho...

Webentwickler sind besorgt über die Koexistenz von IE7 und IE8

Ich habe heute IE8 installiert. Als ich auf die M...

Das WeChat-Applet ermöglicht horizontales und vertikales Scrollen

In diesem Artikelbeispiel wird der spezifische Co...

Linux-Betrieb und -Wartung – Tutorial zur grundlegenden Datenträgerverwaltung

1. Festplattenpartition: 2. fdisk-Partition Wenn ...

So lösen Sie das Problem der Groß-/Kleinschreibung bei MySQL-Abfragen

Frage Als ich kürzlich ein praktisches Projekt mi...

Detaillierte Erklärung zum Anzeigen der Anzahl der MySQL-Server-Threads

In diesem Artikel wird anhand eines Beispiels bes...

Vue + ElementUI implementiert Paging-Funktion - MySQL-Daten

Inhaltsverzeichnis 1. Problem 2. Lösung 2.1 Pagin...

Ein paar Dinge zu favicon.ico (am besten im Stammverzeichnis ablegen)

Öffnen Sie eine beliebige Webseite, zum Beispiel ...