PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Kích thước chỉ mục PostgreSQL và số giá trị

pg_table_size('index_name') cho chỉ mục riêng lẻ - nhưng nó sẽ chỉ hiển thị cho bạn kích thước trên đĩa chứ không phải số lượng dữ liệu

count(*) để có được giá treo hàng chính xác hiện tại

sum(pg_column_size(column_name)) from table_name để ước tính về lượng dữ liệu cột

bạn có thể thử cho mình những thứ như:

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)

và để kiểm tra cách psql lấy kích thước chỉ mục riêng lẻ, hãy chạy nó với psql -E ..

và một lần nữa - các hàm trên hoạt động với kích thước của đĩa - nó có thể / (có thể không) cực kỳ khác với lượng dữ liệu thực. hút bụi hữu ích ở đây

cập nhật Tôi không biết nơi bạn trực tiếp lấy số lượng "hàng" trong chỉ mục, do đó chỉ có thể đưa ra cách gián tiếp. Ví dụ:để tôi có chỉ mục một phần, vì vậy "số hàng" khác với bảng. Tôi có thể kiểm tra ước tính với EXPLAIN (tất nhiên bạn phải lặp lại mệnh đề where cho điều đó) kiểm tra rows=66800 trong Index Only Scan using cho tôi ý tưởng về số hàng trong chỉ mục đó (thực tế là rows=64910 mà bạn có thể nhận được bằng cách explain analyze hoặc chỉ chạy count(*) ). Tôi không thể tìm thấy thông tin liên quan trong pg_stats - có thể có một số công thức. Tôi không biết.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Google Cloud SQL PG11:không thể thay đổi kích thước phân đoạn bộ nhớ được chia sẻ

  2. Các khóa ngoại JSON trong PostgreSQL

  3. PostgreSQL Fibonacci Sequence - Truy vấn không có đích cho dữ liệu kết quả

  4. Nhật ký Heroku cho biết Không có mô-đun nào có tên 'urlparse' khi tôi sử dụng import urlparse

  5. Tự động tạo id trong Spring MVC