Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL:यदि मैं SQL क्वेरी में एक से अधिक बार किसी फ़ंक्शन का उपयोग करता हूं तो क्या यह हर बार फिर से गणना की जाएगी?

क्या होता है यह देखने के लिए यहां एक छोटा प्रयोग है।

create function determin_rand (i integer) 
returns float DETERMINISTIC
return rand();

create function not_determin_rand (i integer) 
returns float 
return rand();

select determin_rand(1) as d1 , determin_rand(1) as d2, 
  not_determin_rand(1) as nd1, not_determin_rand(1) as nd2

0.00850549154   0.831901073456  0.133989050984  0.174242004752

चूंकि मान भिन्न हैं, इसलिए फ़ंक्शन को हर बार कॉल किया जा रहा है। पहले समारोह में मैंने इसे नियतात्मक घोषित किया, लेकिन इससे कोई फर्क नहीं पड़ा।

मैंने आपके लिए इसे mysql के विभिन्न संस्करणों के साथ आज़माने के लिए एक sqlfiddle बनाया है।

http://sqlfiddle.com/#!2/a8536/2



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP MySql अज्ञात सर्वर होस्ट

  2. ऐसा लगता है कि वेब एप्लिकेशन [] ने [परित्यक्त कनेक्शन क्लीनअप थ्रेड] com.mysql.jdbc.AbandonedConnectionCleanupThread नामक एक थ्रेड शुरू किया है।

  3. क्यों 'मौजूद' के साथ sql MySQL का उपयोग करके 'इन' की तुलना में धीमा चलता है?

  4. MySQL डिग्री () फ़ंक्शन - रेडियन से डिग्री में कनवर्ट करें

  5. MySQL - बड़े डेटाबेस से कुछ विशिष्ट तालिकाओं को हटाना