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

पोस्टग्रेज:ऑफसेट/सीमा के साथ उप-चयनों पर प्रदर्शन इतना खराब क्यों है?

मुझे लगता है कि SELECT क्लॉज में व्यक्त जॉइन को उन 100000 पंक्तियों के लिए भी निष्पादित किया जा रहा है जिन्हें आप अंतिम डेटा सेट में शामिल नहीं कर रहे हैं।

इसके बारे में कैसे:

SELECT s2.user_id,
(SELECT address_id FROM address a WHERE a.user_id = s2.user_id ORDER BY address_id OFFSET 0 LIMIT 1) AS a_id
FROM (select *
      from   subscribers s
      ORDER BY s.user_id
      OFFSET 100000 LIMIT 200) s2

ऐसा न होने पर, एक सामान्य तालिका व्यंजक आज़माएं:

With s2 as (
  select *
  from   subscribers s
  ORDER BY s.user_id
  OFFSET 100000 LIMIT 200)
SELECT s2.user_id,
(SELECT address_id FROM address a WHERE a.user_id = s2.user_id ORDER BY address_id OFFSET 0 LIMIT 1) AS a_id
FROM s2


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MacOS 10.9.5 . पर Psycopg2 स्थापित करने में त्रुटि

  2. रेल 3 माइग्रेशन:बूलियन (mysql बनाम postgreSQL)

  3. PostgreSQL में वर्ण प्रकारों पर स्पष्टीकरण की आवश्यकता है

  4. Postgresql में JSON की कुंजियों की संख्या / संख्या की गणना कैसे करें?

  5. PostgreSQL में एक स्ट्रिंग को एक संख्यात्मक मान में कैसे बदलें