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
Einige im Projekt verwendete Sonderzeichen und Sy...
Inhaltsverzeichnis Problembeschreibung Was ist di...
Bei der Web-Frontend-Entwicklung ist es unvermeidl...
1. Der Unterschied zwischen TEXT und BLOB Der ein...
Bei der Installation von tortoiseGit gab es immer...
Der erste Artikel zum Thema Datensicherung und -w...
<br />Verwandte Artikel: So rufen Sie einen ...
Vorbereitung: 1. Installieren Sie die VMware Work...
In diesem Artikelbeispiel wird der spezifische Co...
Inhaltsverzeichnis 1. Einleitung 2. Installieren ...
Inhaltsverzeichnis Hintergrund Umsetzungsideen Er...
Inhaltsverzeichnis Schriftarten mit font-face ric...
Wie können wir beim Beenden eines laufenden Conta...
01PARTCoreWebApi Tutorial Lokale Demonstrationsum...
Zusammenfassen Globale Umgebung ➡️ Fenster Normal...