1. Erstellen Sie eine Tabelle1.1 Testtabelle t_user erstellenTabelle „t_user“ erstellen ( `id` int(11) NICHT NULL AUTO_INCREMENT, `c_user_id` varchar(36) NOT NULL DEFAULT '' KOMMENTAR 'Benutzer-ID', `c_name` varchar(22) NOT NULL DEFAULT '' COMMENT 'Benutzername', `c_province_id` int(11) NOT NULL COMMENT 'Provinz-ID', `c_city_id` int(11) NICHT NULL KOMMENTAR 'Stadt-ID', `create_time` datetime NICHT NULL KOMMENTAR 'Erstellungszeit', Primärschlüssel (`id`), SCHLÜSSEL `idx_user_id` (`c_user_id`) )ENGINE=InnoDB STANDARD-CHARSET=utf8mb4; 1.2 Erstellen einer temporären TabelleTABELLE ERSTELLEN `tmp_table` ( `id` int(11) NICHT NULL, PRIMÄRSCHLÜSSEL (`id`) )ENGINE=InnoDB STANDARD-CHARSET=utf8; 2. Daten generieren2.1 Erstellen Sie eine Datendatei mit [100 Millionen] Datensätzen mit Python (dies dauert etwas)python -c "für i im Bereich (1, 1 + 100000000): drucken (i)" > base.txt 2.2 Importieren Sie die generierte Datei in die temporäre Tabelle tmp_tableFinden Sie die entsprechende Datenbank Geben Sie „help;“ oder „\h“ ein, um Hilfe zu erhalten. Geben Sie „\c“ ein, um die aktuelle Eingabeanweisung zu löschen. mysql> Test verwenden; Datenbank geändert mysql> Tabellen anzeigen; +----------------+ | Tabellen_im_Test | +----------------+ | Studentin | | t_Benutzer | | temporäre Tabelle | +----------------+ 3 Zeilen im Satz (0,00 Sek.) Führen Sie den Importbefehl aus mysql> Daten in Datei „E:/base.txt“ laden und in Tabelle „tmp_table“ ersetzen; FEHLER 1290 (HY000): Der MySQL-Server läuft mit der Option --secure-file-priv Daher kann diese Anweisung nicht ausgeführt werden. MySQL> Beim Importieren von Daten kann ein Fehler auftreten, da secure_file_priv in MySQL standardmäßig nicht aktiviert ist (dieser Parameter wird verwendet, um die Auswirkungen von Datenimport- und -exportvorgängen, wie z. B. das Ausführen von LOAD DATA-, SELECT ... INTO OUTFILE-Anweisungen und LOAD_FILE()-Funktionen, zu begrenzen. Für diese Vorgänge muss der Benutzer über das FILE-Privileg verfügen.) Lösung: Fügen Sie Sie können Show-Variablen wie „%secure%“ verwenden. Sehen Sie sich zunächst die Konfiguration an: mysql> Variablen wie „%secure%“ anzeigen; +--------------------------+----------+ | Variablenname | Wert | +--------------------------+----------+ | secure_transport erforderlich | AUS | | sichere_Authentifizierung | EIN | | secure_file_priv | NULL | +--------------------------+----------+ 3 Zeilen im Satz, 1 Warnung (0,00 Sek.) veranschaulichen: secure_file_prive=null Beschränkt den Import und Export von mysqld secure_file_priv=/var/lib/mysql-files/ Beschränkt den Import und Export von mysqld in das Verzeichnis /var/lib/mysql-files/ secure_file_priv=' ' Beschränkt den Import und Export von mysqld nicht Hinweis: Die Konfiguration sollte unter dem Knoten [mysqld] hinzugefügt werden. Um herauszufinden, ob der Pfad in Anführungszeichen gesetzt werden soll, können Sie Folgendes versuchen: Starten Sie MySQL neu und überprüfen Sie zuerst die Konfiguration: mysql> Test verwenden; Datenbank geändert mysql> Variablen wie „%secure%“ anzeigen; +--------------------------+----------+ | Variablenname | Wert | +--------------------------+----------+ | secure_transport erforderlich | AUS | | sichere_Authentifizierung | EIN | | secure_file_priv | E:\ | +--------------------------+----------+ 3 Zeilen im Satz, 1 Warnung (0,00 Sek.) Und dann erneut importieren: mysql> Daten in Datei „E:/base.txt“ laden und in Tabelle „tmp_table“ ersetzen; Abfrage OK, 100000000 Zeilen betroffen (3 Min. 53,42 Sek.) Datensätze: 100000000 Gelöscht: 0 Übersprungen: 0 Warnungen: 0 MySQL> Milliarden von Daten, 233,42 s. Wenn Sie sich die Daten anderer Leute ansehen, ist es ungefähr dasselbe. 3. Verwenden Sie die temporäre Tabelle als Basisdaten und fügen Sie Daten in t_user ein.Einhundert Millionen Datenpunkte dauern fast eine halbe Stunde. . . (Vielleicht wäre es schneller, es direkt von der Befehlszeile aus auszuführen …) Aktualisieren Sie das Feld „Erstellungszeit“, um die Erstellungszeit der eingefügten Daten zufälliger zu gestalten: mysql> UPDATE t_user SET create_time=date_add(create_time, Intervall FLOOR(1 + (RAND() * 7)) Jahr); Abfrage OK, 100000000 Zeilen betroffen (7 Min. 24,17 Sek.) Übereinstimmende Zeilen: 100000000 Geändert: 100000000 Warnungen: 0 mysql> UPDATE t_user SET create_time=date_add(create_time, Intervall FLOOR(1 + (RAND() * 7)) Jahr); Abfrage OK, 100000000 Zeilen betroffen (8 Min. 2,49 Sek.) Übereinstimmende Zeilen: 100000000 Geändert: 100000000 Warnungen: 0 Zu diesem Zeitpunkt ist das Einfügen von 100 Millionen Daten abgeschlossen. 4. ReferenzSo erstellen Sie schnell zig Millionen Testdaten in MySQL Der MySQL-Server läuft mit der Option --secure-file-priv Dies ist das Ende dieses Artikels zum schnellen Einfügen von 100 Millionen Testdaten in MySQL. Weitere Informationen zum Einfügen von 100 Millionen 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:
|
<<: Detaillierter Prozess der Bereitstellung von Docker für WSL2 in IDEA
>>: CSS3 verwendet scale() und rotate() zum Zoomen und Drehen
Die Nginx-Protokolle werden von Filebeat gesammel...
Inhaltsverzeichnis Vorwort Start Schritt Fehlerbe...
Übergeordnete Datei importiere React, { useState ...
Ich bin schon einmal auf das Problem gestoßen, da...
Erstellen Sie eine Animation der acht Planeten de...
Index Condition Pushdown (ICP) wird in MySQL 5.6 ...
Dieser Artikel ist ein integrierter Artikel zum E...
Inhaltsverzeichnis VMware BurpSuite 1. Virtuelles...
Wir verwenden Klickereignisse häufig im A-Tag: 1. ...
Inhaltsverzeichnis JavaScript importieren 1. Inte...
Vorwort Die beste Methode ist möglicherweise nich...
Ein Problem, auf das Frontend-Entwickler häufig s...
Inhaltsverzeichnis Vorwort Was ist Hot Change Coc...
Konzepteinführung: Wir wissen, dass das Redo-Log ...
Das Internet ist bereits voll von Artikeln dieser...