Planner chọn join nào và vì sao: cùng một câu JOIN, ba kế hoạch khác nhau
PostgreSQL không có join mặc định — với mỗi truy vấn nó ước lượng số dòng rồi tính chi phí từng kiểu join và chọn cái rẻ nhất. Đo thật: cùng câu JOIN, đổi bộ lọc WHERE khiến planner chuyển từ Nested Loop sang Hash Join. PostgreSQL 16.