Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mencipta Jadual Nombor Berturut-turut Besar dengan Cekap 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!