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
Inhaltsverzeichnis 1. Analyse des wichtigsten Que...
Inhaltsverzeichnis 1. Ändern Sie die Datei my.cnf...
Inhaltsverzeichnis 1. Ref und reaktiv 1. reaktiv ...
1. Installieren Sie mutt sudo apt-get install mut...
Heute habe ich festgestellt, dass ein Programm ei...
Wir alle haben Dateien auf unseren Computern gesp...
Der vollständige Name von Blog sollte Weblog sein...
1. Überlauf Überlauf ist Überlauf (Container). We...
Verwenden Sie „onInput(event)“, um festzustellen,...
Inhaltsverzeichnis Allgemeine Entwicklung von Upl...
In der Datenbank führen sowohl die Schlüsselwörte...
Rot und Pink und ihre Hexadezimalcodes. #990033 #...
Inhaltsverzeichnis Werkzeug Installieren Sie das ...
Tutorial zur Netzwerknutzung Offizielle Website d...
In diesem Artikel erfahren Sie zu Ihrer Informati...