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

इनर जॉइन बनाम डूइंग ए व्हेयर इन क्लॉज

क्या एक प्रश्न जारी करने और दो प्रश्न जारी करने में कोई अंतर है? खैर, मुझे निश्चित रूप से उम्मीद है। SQL इंजन काम कर रहा है, और यह दो प्रश्नों के लिए (एक निश्चित दृष्टिकोण से) दोगुना काम करता है।

सामान्य तौर पर, एक क्वेरी को पार्स करना एक क्वेरी को पार्स करने, एक मध्यवर्ती परिणाम सेट को वापस करने और फिर उसे दूसरी क्वेरी में फीड करने की तुलना में तेज़ होने वाला है। क्वेरी संकलन में और डेटा को आगे-पीछे करने में ओवरहेड होता है।

इस प्रश्न के लिए:

select * 
from users u inner join
     location l
     on u.location = l.id 
where u.location = 10; 

आप users(location) . पर एक अनुक्रमणिका चाहते हैं और location(id)

मैं कुछ और इंगित करना चाहता हूं। प्रश्न समकक्ष नहीं हैं। वास्तविक तुलना क्वेरी है:

select l.*
from location l
where l.id = 10;

आप where . के लिए एक ही कॉलम का उपयोग कर रहे हैं और on . इसलिए, यह सबसे कुशल संस्करण होगा और आप location(id) . पर एक इंडेक्स चाहते हैं ।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JOOQ का उपयोग करके PostgreSQL में JSON कॉलम के साथ एक अद्यतन करने योग्य रिकॉर्ड कैसे सम्मिलित करें?

  2. सरणी के लिए UNIQUE CONSTRAINT पोस्टग्रेज करता है

  3. एक स्ट्रिंग की जांच करने के लिए पोस्टग्रेज क्वेरी एक संख्या है

  4. रेल में Postgresql पर तैयार वक्तव्य

  5. SQLAlchemy या psycopg2?