Vorwort Um den Unterschied zwischen dem Hinzufügen und Nicht-Hinzufügen von Indizes widerzuspiegeln, müssen wir Millionen von Daten verwenden. Wenn wir jedoch Millionen von Daten einzeln zu einer Tabelle hinzufügen, ist dies sehr umständlich und mühsam. Hier verwenden wir gespeicherte Prozeduren, um Daten schnell hinzuzufügen, was etwa 4 Stunden dauert. CREATE TABLE `t_sales` ( `id` int(11) NICHT NULL AUTO_INCREMENT, `Benutzername` varchar(32) COLLATE utf8_bin DEFAULT NULL COMMENT 'Benutzername', `Passwort` varchar(64) COLLATE utf8_bin DEFAULT NULL COMMENT 'Passwort MD5-Speicher', `register_time` Zeitstempel NULL DEFAULT NULL COMMENT 'Registrierungszeit', `Typ` int(1) DEFAULT NULL COMMENT 'Benutzertyp 1,2,3,4 zufällig', Primärschlüssel (`id`), SCHLÜSSEL `idx_username` (`Benutzername`) USING BTREE ) Erstellen Sie dann eine gespeicherte Prozedur, um Daten stapelweise hinzuzufügen.
Prozedur salesAdd() erstellen beginnen deklariere i int default 11; während i <= 4000000 in blog.t_sales einfügen (`Benutzername`,`Passwort`,`Registrierungszeit`,Typ) Werte (concat("jack",i),MD5(concat("psswe",i)),from_unixtime(unix_timestamp(jetzt()) - floor(rand() * 800000)),floor(1 + rand() * 4)); setze i = i + 1; Ende während; Ende Rufen Sie dann die gespeicherte Prozedur auf Rufen Sie salesAdd() auf Verbesserte VersionObwohl die Verwendung gespeicherter Prozeduren zum Hinzufügen von Daten bequemer und schneller ist als das Hinzufügen einzelner Daten, dauert das Hinzufügen von Millionen von Daten mehrere Stunden. Später habe ich im Internet viele Informationen gefunden und festgestellt, dass MySQL bei jeder Ausführung einer Anweisung automatisch ein Commit durchführt. Dieser Vorgang ist sehr zeitaufwändig, daher habe ich das automatische Commit hinzugefügt und entfernt. AUTOCOMMIT festlegen = 0; Prozedur salesAdd() erstellen beginnen deklariere i als int default 1; setze Autocommit = 0; während i <= 4000000 in blog.t_sales einfügen (`Benutzername`,`Passwort`,`Registrierungszeit`,Typ) Werte (concat("jack",i),MD5(concat("psswe",i)),from_unixtime(unix_timestamp(jetzt()) - floor(rand() * 800000)),floor(1 + rand() * 4)); setze i = i + 1; Ende während; setze Autocommit = 1; Ende Die Ausführungszeit beträgt 387 Sekunden, also etwa sechs Minuten, wobei die Hälfte der Zeit für MD5- und Zufallszahlenberechnungen verwendet wird.
Dies ist das Ende dieses Artikels darüber, wie Sie mithilfe gespeicherter Prozeduren schnell Millionen von Daten in MySQL hinzufügen können. Weitere Informationen zum Hinzufügen von Millionen von Daten in MySQL finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
>>: Negative Distanz (Empathie) – iterativer Prozess der gegenseitigen Beeinflussung
Die Drag-Funktion wird hauptsächlich verwendet, u...
Wenn Sie es nicht durch direktes Klicken auf „Dow...
Inhaltsverzeichnis 1. Hintergrundwissen 1. Einfüh...
Beim Hochladen von Dateien, z. B. Videodateien, d...
In horizontaler Richtung können Sie die Zeilenaus...
In diesem Artikel wird der spezifische Code von j...
Inhaltsverzeichnis Überblick 1. Middleware auf An...
Ich habe heute mit den Netzwerkeinstellungen unte...
Portainer ist ein hervorragendes grafisches Verwa...
Das Büro benötigt ein Ubuntu-System als Linux-Ent...
So verwenden Sie den Code im NetEase-Blog: Melden...
Hintergrund-Controller @RequestMapping("/get...
Unterabfrage in der MySql-Datenbank: Unterabfrage...
1. Einleitung Vor ein paar Tagen bin ich bei der ...
Wenn wir CSS schreiben, vergessen wir manchmal di...