pg_table_size('index_name')
व्यक्तिगत अनुक्रमणिका के लिए - लेकिन यह आपको केवल डिस्क पर आकार दिखाएगा, डेटा की मात्रा नहीं
count(*)
पंक्तियों का सटीक वर्तमान माउंट प्राप्त करने के लिए
तालिका_नाम से sum(pg_column_size(column_name)) from table_name
कॉलम डेटा राशि के अनुमानों के लिए
आप स्वयं को इस तरह आज़मा सकते हैं:
t=# \di+ tbl*
List of relations
Schema | Name | Type | Owner | Table | Size | Description
--------+----------------------+-------+----------+----------------+--------+-------------
public | tbl_pkey | index | postgres | tbl | 156 MB |
public | tbl_unpic | index | postgres | tbl | 46 MB |
public | tbl_x1 | index | postgres | tbl | 57 MB |
(3 rows)
t=# \dt+ tbl
List of relations
Schema | Name | Type | Owner | Size | Description
--------+----------------+-------+----------+-------+-------------
public | tbl | table | postgres | 78 MB |
(1 row)
t=# select pg_size_pretty(pg_total_relation_size('tbl'));
pg_size_pretty
----------------
337 MB
(1 row)
t=# select 78+57+46+156;
?column?
----------
337
(1 row)
और यह जांचने के लिए कि कैसे psql को व्यक्तिगत अनुक्रमणिका आकार मिलता है, इसे psql -E
. के साथ चलाएं ..
और एक बार फिर - ऊपर के कार्य डिस्क के आकार के साथ काम करते हैं - यह वास्तविक मात्रा में डेटा से बहुत अलग हो सकता है/(नहीं)। वैक्यूमिंग यहाँ मदद करता है
अपडेट करें मुझे नहीं पता कि आपको इंडेक्स में सीधे "पंक्तियों" की संख्या कहां मिलती है, इस प्रकार केवल अप्रत्यक्ष तरीके से पेशकश कर सकते हैं। उदाहरण के लिए मुझे आंशिक अनुक्रमणिका दें, इसलिए "पंक्तियों की संख्या" तालिका से अलग है। मैं EXPLAIN के साथ अनुमानों की जांच कर सकता हूं (बेशक आपको उसके लिए जहां क्लॉज दोहराना होगा) rows=66800
की जांच करना Index Only Scan using
. में मुझे उस अनुक्रमणिका में पंक्तियों की संख्या के बारे में एक विचार देता है (वास्तव में यह rows=64910
है जिसे आप explain analyze
. द्वारा प्राप्त कर सकते हैं या बस चल रहा है count(*)
) मुझे pg_stats में प्रासंगिक जानकारी नहीं मिल रही है - शायद कुछ सूत्र है। मुझे नहीं पता।