Heim > Datenbank > MySQL-Tutorial > Wie erstellt man effizient eine große Tabelle mit aufeinanderfolgenden Zahlen in MySQL?

Wie erstellt man effizient eine große Tabelle mit aufeinanderfolgenden Zahlen in MySQL?

Linda Hamilton
Freigeben: 2025-01-11 16:36:45
Original
351 Leute haben es durchsucht

How to Efficiently Create a Large Consecutive Numbers Table in MySQL?

Erstellen einer umfassenden Zahlentabelle in MySQL

Das effiziente Generieren einer großen Tabelle mit aufeinanderfolgenden Zahlen in MySQL erfordert einen besseren Ansatz als einfache INSERT Schleifen. Das direkte Einfügen von Zeilen nacheinander und das wiederholte Abfragen des Maximalwerts ist ineffizient und fehleranfällig.

Das Folgende veranschaulicht einen fehlerhaften Ansatz und hebt seine Mängel hervor:

<code class="language-sql">CREATE TABLE numbers (
    number INT NOT NULL,
    PRIMARY KEY (number)
);

INSERT INTO numbers (number) VALUES (0);

-- Inefficient and error-prone loop (Illustrative only, contains errors)
-- ... (Loop using WHILE and SELECT MAX(number) repeatedly) ...</code>
Nach dem Login kopieren

Diese Methode leidet unter Leistungsproblemen aufgrund wiederholter SELECT MAX(number) Aufrufe innerhalb der Schleife. Darüber hinaus ist das Beispielcode-Snippet unvollständig und enthält Syntaxfehler.

Eine effizientere Lösung nutzt eine gespeicherte Prozedur und vermeidet die Notwendigkeit kontinuierlicher SELECT Vorgänge:

<code class="language-sql">DROP PROCEDURE IF EXISTS genData;

DELIMITER //
CREATE PROCEDURE genData(OUT a INT, OUT b INT)
BEGIN
  DECLARE i INT UNSIGNED;
  DECLARE j INT UNSIGNED;
  SET a = FLOOR(RAND() * 32768);
  SET b = MOD(RAND() * 16, 256);
  SET i = a | (b << 16);
  SET j = 0;
  WHILE j < 65535 DO
    INSERT INTO numbers (number) VALUES (i);
    IF i >= 65535 THEN
      SET i = i ^ 16;
      SET b = (b + 1) & 255;
      SET a = a + 1;
    END IF;
    SET j = j + 1;
  END WHILE;
END //
DELIMITER ;</code>
Nach dem Login kopieren

Diese gespeicherte Prozedur bietet eine viel schnellere Methode zum Generieren einer großen Anzahl von Zeilen. Dieser Ansatz verbessert die Leistung im Vergleich zur iterativen INSERT-Methode erheblich. Die Verwendung einer gespeicherten Prozedur rationalisiert den Prozess und ermöglicht die effiziente Erstellung umfangreicher Zahlentabellen in MySQL.

Das obige ist der detaillierte Inhalt vonWie erstellt man effizient eine große Tabelle mit aufeinanderfolgenden Zahlen in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage