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

Tham gia bên trong so với thực hiện mệnh đề where in

Có sự khác biệt giữa việc phát hành một truy vấn và phát hành hai truy vấn không? Vâng, tôi chắc chắn hy vọng như vậy. Công cụ SQL đang hoạt động và nó hoạt động gấp đôi (từ một góc độ nhất định) cho hai truy vấn.

Nói chung, phân tích cú pháp một truy vấn sẽ nhanh hơn phân tích cú pháp một truy vấn, trả về một tập kết quả trung gian, rồi đưa nó trở lại truy vấn khác. Có chi phí cao trong việc biên dịch truy vấn và chuyển dữ liệu qua lại.

Đối với truy vấn này:

select * 
from users u inner join
     location l
     on u.location = l.id 
where u.location = 10; 

Bạn muốn có chỉ mục về users(location)location(id) .

Tôi muốn chỉ ra một cái gì đó khác. Các truy vấn không tương đương. Truy vấn so sánh thực sự là:

select l.*
from location l
where l.id = 10;

Bạn đang sử dụng cùng một cột cho whereon . Do đó, đây sẽ là phiên bản hiệu quả nhất và bạn muốn có chỉ mục trên location(id) .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. pgAdmin 4 phiên bản. 1.5 - không có thông báo lỗi

  2. Làm thế nào để có được hàng đầu tiên trên mỗi nhóm trong PostgreSQL

  3. Nhà cung cấp dịch vụ đám mây chuyên sâu:PostgreSQL trên DigitalOcean

  4. PostgreSQL:sắp xếp theo cột, với giá trị KHÔNG ĐẦY ĐỦ cụ thể CUỐI CÙNG

  5. PostgreSQL - tạo một DB mới thông qua giao diện người dùng pgAdmin