बहुत जल्दी अनुमान के लिए:
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
. पर एक प्रश्न कई बार धीमा है (हालांकि अभी भी पूर्ण गणना से बहुत तेज है), क्योंकि यह कुछ तालिकाओं पर एक दृश्य है।