Keyword “deterministic” pada function/procedure MySQL digunakan untuk memberitahu MySQL bahwa fungsi/prosedur tersebut selalu mengembalikan nilai yang sama ketika diberikan argumen yang sama.
Dalam MySQL, secara default, jika sebuah fungsi/prosedur tidak diberi tahu apakah deterministik atau tidak, maka MySQL menganggap fungsi/prosedur tersebut tidak deterministik. Artinya, jika fungsi/prosedur dipanggil beberapa kali dengan argumen yang sama, MySQL dapat mengembalikan hasil yang berbeda-beda.
Namun, jika sebuah fungsi/prosedur diberi tahu sebagai deterministik, MySQL akan menyimpan hasil yang dihasilkan oleh fungsi/prosedur untuk penggunaan lebih lanjut. Dengan demikian, jika fungsi/prosedur dipanggil beberapa kali dengan argumen yang sama, MySQL akan selalu mengembalikan nilai yang sama.
Penggunaan “deterministic” dapat membantu mempercepat kinerja database karena MySQL dapat menyimpan hasil yang dihasilkan oleh fungsi/prosedur untuk penggunaan lebih lanjut. Namun, perlu diingat bahwa penggunaan “deterministic” harus diperhitungkan dengan baik, terutama jika fungsi/prosedur menghasilkan output yang kompleks, karena dapat memakan waktu dan memori yang signifikan.
contoh :
CREATE PROCEDURE example_proc(IN num INT)
DETERMINISTIC
NO SQL
BEGIN
DECLARE result INT;
SET result = num * 2;
SELECT result;
END;
Dalam contoh di atas, stored procedure example_proc
didefinisikan dengan atribut DETERMINISTIC
dan NO SQL
. Stored procedure ini memiliki satu parameter num
yang digunakan untuk menghitung hasil dari num * 2
.
Atribut DETERMINISTIC
menunjukkan bahwa stored procedure ini menghasilkan hasil yang sama untuk input yang sama setiap saat. Ini berarti, jika Anda memasukkan nilai yang sama untuk num
, stored procedure akan selalu menghasilkan hasil yang sama.
Atribut NO SQL
menunjukkan bahwa stored procedure ini tidak menggunakan perintah SQL dalam tubuhnya. Ini berarti bahwa stored procedure ini hanya menggunakan logika dan operasi dasar, dan tidak melakukan modifikasi pada database MySQL.
Kombinasi atribut DETERMINISTIC
dan NO SQL
berguna dalam situasi di mana kita ingin mengeksekusi operasi atau kalkulasi sederhana di dalam stored procedure, tanpa perlu mengakses atau memodifikasi data dalam database. Atribut ini juga dapat berguna dalam mempercepat eksekusi stored procedure karena database tidak perlu memeriksa perubahan data pada waktu eksekusi.
Place your comment