जवाबों:
आधिकारिक विकी पृष्ठों है कि करने के लिए एक जवाब दे:
[...] यह धीमा होने का कारण PostgreSQL में MVCC कार्यान्वयन से संबंधित है। तथ्य यह है कि कई लेनदेन डेटा के विभिन्न राज्यों को देख सकते हैं, इसका मतलब है कि "COUNT (*)" के लिए पूरे तालिका में डेटा को संक्षेप में प्रस्तुत करने का कोई सीधा रास्ता नहीं हो सकता है; PostgreSQL को कुछ अर्थों में, सभी पंक्तियों के माध्यम से चलना चाहिए। यह आम तौर पर तालिका में हर पंक्ति के बारे में एक क्रमिक स्कैन पढ़ने की जानकारी के परिणामस्वरूप होता है। [...]
इसके अलावा, आप क्वेरी प्लानर के लिए जानकारी के पुनर्निर्माण के लिए एक विश्लेषण की कोशिश कर सकते हैं ।
आपको एक बेहतर प्रदर्शन प्राप्त करना चाहिए, COUNT(an uniquly indexed field)
लेकिन अगर यह बहुत बड़ा है, तो एक seq स्कैन ही इसे करने का एकमात्र तरीका है।
यदि आपको बहुत त्वरित संख्याओं की आवश्यकता है और स्कीमा को क्वेरी करने से डरते नहीं हैं, तो आप निम्न कार्य कर सकते हैं
SELECT reltuples FROM pg_class WHERE oid = 'your_table'::regclass
लेकिन इस मूल्यों पर भरोसा न करें क्योंकि यह तालिका में केवल एक "अनुमानित" (हालांकि अक्सर सटीक) संख्या है।
EXPLAIN SELECT * from your_table;
। यह क्वेरी निष्पादित नहीं करेगा। आउटपुट में rows=…
पंक्तियों की अनुमानित संख्या के साथ शामिल है ।
COUNT(pk)
प्रदर्शन में सुधार होगा। मुझे लगता है कि यह हमेशा एक