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

SQL JOIN trong PostgreSQL - Kế hoạch thực thi trong mệnh đề WHERE khác với mệnh đề ON

Cảm ơn ý kiến ​​của bạn, nếu chúng tôi thêm một chỉ mục như

CREATE INDEX t3_t1_nr ON t3(t1_nr);

câu lệnh "BAD" sẽ cải thiện một chút.

Nhưng giải pháp cuối cùng cho chúng tôi là tăng số liệu thống kê thu thập được cho các bảng này:

ALTER TABLE t1 ALTER COLUMN t1_nr SET STATISTICS 10000;
ALTER TABLE t2 ALTER COLUMN t2_nr SET STATISTICS 10000;
ALTER TABLE t3 ALTER COLUMN t1_nr SET STATISTICS 10000;

ANALYZE t1;
ANALYZE t2;
ANALYZE t3;

Sau thay đổi này, cả hai SELECT đều có cùng thời gian loại bỏ. Bạn có thể tìm thêm thông tin tại đây: https://www.postgresql.org/docs/12/planner-stats.html




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thay đổi loại cột thành chuỗi dài hơn trong đường ray

  2. Tính toán điểm cách 50 dặm (Bắc, 45% NE, 45% SW)

  3. Làm cách nào để xóa mọi bảng trong một lược đồ cụ thể trong postgres?

  4. Rails tham gia truy vấn

  5. PostgreSQL khác gì với MySQL?