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

पोस्टग्रेस्क्ल (कीसेट पेजिनेशन?)

यहां बताया गया है कि मैं इसे कैसे संभालता हूं। मेरे द्वारा लाए गए पहले पृष्ठ के लिए, मैं उपयोग करता हूं

SELECT id, col, col, col 
  FROM output 
 ORDER BY id DESC
 LIMIT 10000

फिर, मेरे क्लाइंट प्रोग्राम (नोड.जेएस) में मैं id . को कैप्चर करता हूं परिणाम सेट की अंतिम पंक्ति से मान। जब मुझे अगले पृष्ठ की आवश्यकता होती है, तो मैं यह करता हूं।

 SELECT id, col, col, col
   FROM output
  WHERE id < my_captured_id_value
  ORDER BY id DESC

यह सूचकांक का शोषण करता है। और यह सही ढंग से काम करता है, भले ही आपने टेबल से कुछ पंक्तियों को हटा दिया हो।

वैसे, आप शायद एक अवरोही सूचकांक चाहते हैं यदि आपके पहले पृष्ठ पर अंक लगाना पृष्ठ में सबसे बड़ी आईडी है। CREATE UNIQUE INDEX index_id ON output USING btree (ID DESC)

प्रो टिप SELECT * बड़े डेटाबेस पर प्रदर्शन के लिए हानिकारक है। हमेशा उन स्तंभों को सूचीबद्ध करें जिनकी आपको वास्तव में आवश्यकता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. त्रुटि:एक से अधिक रिटर्न के साथ क्वेरी के लिए TypedQuery नहीं बना सकता

  2. मान 'जारी रखें' तरल पदार्थ चलाने पर पहलू-मान्य त्रुटि नहीं है

  3. कई User_ID को एक ही रूप में संदर्भित और सहेजना

  4. PostgreSQL में समूह भूमिका के लिए डीबी में एक विशिष्ट स्कीमा पर सभी को अनुदान दें

  5. POSTGRESQL दो अलग-अलग तालिकाओं की प्राथमिक कुंजी का संदर्भ देने वाली विदेशी कुंजी