Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengoptimumkan Gelung dengan Berkesan dalam Prosedur Tersimpan MySQL?
MySQL for Loop Optimization
Dalam MySQL, gelung biasanya ditemui dalam prosedur tersimpan. Pertimbangkan prosedur tersimpan ini dengan gelung asas:
DELIMITER $$ CREATE PROCEDURE ABC() BEGIN DECLARE a INT Default 0; simple_loop: LOOP SET a = a + 1; select a; IF a = 5 THEN LEAVE simple_loop; END IF; END LOOP simple_loop; END $$
Prosedur ini bertujuan untuk lelaran pada julat nilai tertentu. Walau bagaimanapun, ia tersilap mencetak hanya nilai "1" tanpa mengira julat yang dimaksudkan. Sintaks yang betul untuk gelung MySQL melibatkan binaan sementara, yang membolehkan kawalan tepat ke atas lelaran gelung dan keadaan keluar.
Contoh lebih baik menggunakan gelung dalam MySQL boleh dilihat dalam prosedur tersimpan berikut, yang dengan cekap memuatkan data ujian ke dalam jadual:
DROP procedure if exists load_foo_test_data; DELIMITER # CREATE PROCEDURE load_foo_test_data() BEGIN DECLARE v_max int unsigned DEFAULT 1000; DECLARE v_counter int unsigned DEFAULT 0; TRUNCATE TABLE foo; START TRANSACTION; WHILE v_counter < v_max DO INSERT INTO foo (val) VALUES (FLOOR(0 + (RAND() * 65535))); SET v_counter = v_counter + 1; END WHILE; COMMIT; END # DELIMITER ;
Dilaksanakan melalui panggilan untuk memanggil load_foo_test_data();, prosedur ini berjaya mengisi jadual foo dengan nilai rawak dalam julat yang ditentukan.
Dengan menggunakan binaan sementara dan pengurusan gelung yang betul, anda boleh mencipta gelung yang berkesan dan cekap dalam prosedur tersimpan MySQL.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengoptimumkan Gelung dengan Berkesan dalam Prosedur Tersimpan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!