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

अद्यतन क्वेरी में प्रदर्शन समस्या

धीमे से तेज़ क्रम में:

  • 200 व्यक्तिगत प्रश्न, प्रत्येक अपने स्वयं के लेन-देन में
  • 200 व्यक्तिगत प्रश्न, सभी एक लेन-देन में
  • एक बड़ी क्वेरी WHERE ... IN (...) . के साथ या WHERE EXISTS (SELECT ...)
  • एक INNER JOIN के साथ एक बड़ी क्वेरी एक VALUES . से अधिक खंड
  • (मानों की बहुत बड़ी सूचियों के लिए केवल तेज़):COPY एक अस्थायी तालिका में मूल्य सूची, इसे अनुक्रमित करें, और JOIN अस्थायी टेबल पर।

यदि आप सैकड़ों मूल्यों का उपयोग कर रहे हैं तो मैं वास्तव में VALUES . में शामिल होने का सुझाव देता हूं खंड। कई हज़ार मानों के लिए, COPY एक अस्थायी तालिका में और इसे अनुक्रमित करें और फिर उसमें शामिल हों।

मान खंड में शामिल होने का एक उदाहरण। यह देखते हुए IN क्वेरी:

SELECT *
FROM mytable
WHERE somevalue IN (1, 2, 3, 4, 5);

VALUES . के बराबर है:

SELECT *
FROM mytable
INNER JOIN (
  VALUES (1), (2), (3), (4), (5)
) vals(v)
ON (somevalue = v);

हालांकि, ध्यान दें कि VALUES . का उपयोग करना यह तरीका एक PostgreSQL एक्सटेंशन है, जबकि IN , या अस्थायी तालिका का उपयोग करना, SQL मानक है।

यह संबंधित प्रश्न देखें:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL 9.2 JDBC ड्राइवर क्लाइंट टाइम ज़ोन का उपयोग करता है?

  2. Mac OSX पर PG रत्न स्थापित नहीं कर सकता

  3. क्या सोलर में डेटा ckan . में पोस्टग्रेज द्वारा समर्थित है?

  4. समय क्षेत्र समानता के साथ समय को पोस्टग्रेज करता है

  5. बाइटा से ओइड तक कास्ट को समझना