Duplicate entry

Copy-pasting from Stack Overflow is like cooking with a recipe book. You may end up with a decent meal, but you'll never truly master the art of programming.

deterministic pada function/procedure mysql

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.

posted by ismail okta kurniawan in MySQL Sejuta Umat and have No Comments

Place your comment

Please fill your data and comment below.
Name
Email
Website
Your comment

Skip to toolbar