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

Làm cách nào để tăng tốc độ đếm hàng trong bảng PostgreSQL?

Để có một ước tính rất nhanh:

SELECT reltuples FROM pg_class WHERE relname = 'my_table';

Tuy nhiên, có một số lưu ý. Đối với một, relname không nhất thiết phải là duy nhất trong pg_class . Có thể có nhiều bảng có cùng một relname trong nhiều lược đồ của cơ sở dữ liệu. Rõ ràng:

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

Nếu bạn không đủ điều kiện lược đồ cho tên bảng, một truyền đến regclass quan sát search_path hiện tại để chọn kết hợp tốt nhất. Và nếu bảng không tồn tại (hoặc không thể nhìn thấy) trong bất kỳ lược đồ nào trong search_path bạn nhận được một thông báo lỗi. Xem Các loại mã nhận dạng đối tượng trong sách hướng dẫn.

Truyền tới bigint định dạng real số độc đáo, đặc biệt đối với số lượng lớn.

Ngoài ra, reltuples có thể ít nhiều đã lỗi thời. Có nhiều cách để bù đắp điều này ở một mức độ nào đó. Xem câu trả lời sau này với các tùy chọn mới và cải tiến:

  • Cách nhanh chóng để khám phá số hàng của một bảng trong PostgreSQL

Và một truy vấn trên pg_stat_user_tables chậm hơn nhiều lần (mặc dù vẫn nhanh hơn nhiều so với đếm đầy đủ), vì đó là chế độ xem trên một vài bảng.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lỗi PostgreSQL 'Không thể kết nối với máy chủ:Không có tệp hoặc thư mục như vậy'

  2. Postgresql enum những ưu điểm và nhược điểm là gì?

  3. Thứ tự mảng_agg PostgreSQL

  4. Tìm cha mẹ một cách đệ quy bằng cách sử dụng Truy vấn

  5. Cách tự động triển khai cơ sở dữ liệu PostgreSQL