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

मैं PostgreSQL तालिका में पंक्तियों की गिनती कैसे तेज करूं?

बहुत जल्दी अनुमान के लिए:

SELECT reltuples FROM pg_class WHERE relname = 'my_table';

हालांकि, कई चेतावनी हैं। एक के लिए, relname जरूरी नहीं कि pg_class . में अद्वितीय हो . एक ही relname . के साथ कई टेबल हो सकते हैं डेटाबेस के कई स्कीमा में। स्पष्ट होना:

SELECT reltuples::bigint FROM pg_class WHERE oid = 'my_schema.my_table'::regclass;

यदि आप तालिका नाम को स्कीमा-योग्य नहीं बनाते हैं, तो regclass . के लिए एक कास्ट करें वर्तमान search_path का अवलोकन करता है सबसे अच्छा मैच चुनने के लिए। और यदि तालिका search_path में किसी भी स्कीमा में मौजूद नहीं है (या देखी नहीं जा सकती) आपको एक त्रुटि संदेश मिलता है। देखें ऑब्जेक्ट पहचानकर्ता प्रकार मैनुअल में।

bigint . पर कास्ट करें real . को फ़ॉर्मैट करता है संख्या अच्छी तरह से, विशेष रूप से बड़ी संख्या के लिए।

साथ ही, reltuples कम या ज्यादा पुराना हो सकता है। कुछ हद तक इसकी भरपाई करने के तरीके हैं। बाद में इस उत्तर को नए और बेहतर विकल्पों के साथ देखें:

  • PostgreSQL में किसी तालिका की पंक्ति गणना खोजने का तेज़ तरीका

और pg_stat_user_tables . पर एक प्रश्न कई बार धीमा है (हालांकि अभी भी पूर्ण गणना से बहुत तेज है), क्योंकि यह कुछ तालिकाओं पर एक दृश्य है।



  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. सबक्वेरी खराब प्रदर्शन के साथ PostgreSQL IN ऑपरेटर

  3. पोस्टग्रेज फ्रंट-एंड में एक टैब कैसे निर्दिष्ट करें COPY

  4. लुमेन - रनटाइम पर डेटाबेस कनेक्शन बनाएं

  5. PostgreSQL:psql सर्वर से कनेक्ट क्यों नहीं हो सकता है?