Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mencipta Jadual Nombor Berturut-turut Besar dengan Cekap dalam MySQL?

Bagaimana untuk Mencipta Jadual Nombor Berturut-turut Besar dengan Cekap dalam MySQL?

Linda Hamilton
Linda Hamiltonasal
2025-01-11 16:36:45351semak imbas

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

Membina Jadual Nombor Komprehensif dalam MySQL

Menjana jadual besar nombor berjujukan dalam MySQL dengan cekap memerlukan pendekatan yang lebih baik daripada gelung INSERT mudah. Memasukkan baris secara terus satu demi satu, berulang kali menanyakan nilai maksimum, adalah tidak cekap dan terdedah kepada ralat.

Perkara berikut menggambarkan pendekatan yang cacat dan menyerlahkan kelemahannya:

<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>

Kaedah ini mengalami masalah prestasi kerana panggilan SELECT MAX(number) berulang dalam gelung. Tambahan pula, coretan kod contoh tidak lengkap dan mengandungi ralat sintaks.

Penyelesaian yang lebih cekap menggunakan prosedur tersimpan dan mengelakkan keperluan untuk operasi SELECT berterusan:

<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>

Prosedur tersimpan ini menyediakan kaedah yang lebih pantas untuk menjana sejumlah besar baris. Pendekatan ini meningkatkan prestasi dengan ketara berbanding kaedah INSERT berulang. Penggunaan prosedur tersimpan menyelaraskan proses dan membolehkan penciptaan jadual nombor yang luas dalam MySQL dengan cekap.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Jadual Nombor Berturut-turut Besar dengan Cekap dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn