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
Laden Sie MySQL herunter https://dev.mysql.com/do...
Bei der Erstellung von Webseiten werden Eingabe un...
Hintergrund Im Projekt besteht die Anforderung, a...
Übersicht über partitionierte MySQL-Tabellen Wir ...
Inhaltsverzeichnis 1. Konfigurieren Sie den Linux...
Einführung Beginnen wir wie immer mit einer Szene...
Die Gesamtarchitektur von NGINX ist durch eine Re...
In diesem Artikelbeispiel wird der spezifische Im...
Einführung in Nginx Nginx („engine x“) ist ein le...
In diesem Artikel wird der spezifische Code der L...
Container sind ein weiteres Kernkonzept von Docke...
Was wäre, wenn Ihre Designer die folgende Schrift...
Inhaltsverzeichnis 1. Art von 2. Instanz von 3. K...
1. Einführung in LVM Bei der Verwaltung von Linux...
Ressourcenzusammenführung und -komprimierung für ...