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

MySQL में UNION DISTINCT के साथ SELECT DISTINCT का संयोजन - कोई प्रभाव?

आपको निष्पादन योजनाओं की जांच करने की आवश्यकता है। हालांकि, मुझे उम्मीद है कि निष्पादन योजनाएं अलग हैं - या कम से कम वे कुछ परिस्थितियों में होनी चाहिए।

पहली क्वेरी:

SELECT DISTINCT a, b, c FROM table1
UNION DISTINCT
SELECT DISTINCT a, b, c FROM table2

table1(a, b, c) . पर अनुक्रमणिका का आसानी से लाभ उठा सकते हैं और table2(a, b, c) पहले अंतिम UNION कर रहा है . यह डेटा के आकार को कम करके अंतिम संघ को गति देना चाहिए। दूसरी क्वेरी में यह लाभ नहीं है।

वास्तव में, इस क्वेरी को लिखने का सबसे कारगर तरीका शायद दो इंडेक्स और उपयोग करना होगा:

SELECT DISTINCT a, b, c FROM table1 t1
UNION ALL
SELECT DISTINCT a, b, c
FROM table2 t2
WHERE NOT EXISTS (SELECT 1 FROM table1 t1 WHERE t2.a = t1.a and t2.b = t1.b and t2.c = t1.c)

यह लगभग समान है, हालांकि यह NULL . को संभाल सकता है दूसरी तालिका में मान थोड़ा अलग है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ट्रिगर के लिए सम्मिलित मूल्य कैसे प्राप्त करें

  2. ग्रुप बाय का उपयोग करते समय सरणी कैसे वापस करें

  3. mysql एक कॉलम में एकाधिक मानों के साथ जुड़ें

  4. शामिल होने (कोडनिर्देशक) का उपयोग करके एकल फ़ील्ड से अल्पविराम विभाजक के बाद मान पुनर्प्राप्त करें और प्रिंट करें

  5. Group_concat के लिए शून्य मान वाली पंक्तियाँ वापस नहीं आई