PostgreSQL에서 쿼리 성능 개선하기
Amy McCarty
Instructor
조인(Join)
SELECT *
FROM TABLE_A AS A
INNER JOIN TABLE_B AS B
ON A.NAME = B.NAME
데이터 결합용 조인
데이터 필터용 조인
| visit_id | reason | patient_id |
|---|---|---|
| 01 | checkup | 999 |
| 02 | infection | 888 |
| patient_id | name | sex |
|---|---|---|
| 999 | Lotte Smith | F |
| 888 | Zhang Wei | M |
| 777 | Amelia Hernandez | F |
SELECT *
FROM appointments a
INNER JOIN patients p
ON a.patient_id = p.patient_id

SELECT *
FROM appointments a
INNER JOIN patients p
ON a.patient_id = p.patient_id
| visit_id | reason | patient_id | name | sex |
|---|---|---|---|---|
| 01 | checkup | 999 | Lotte Smith | F |
| 02 | infection | 888 | Zhang Wei | M |
SELECT *
FROM appointments a
LEFT JOIN patients p
ON a.patient_id = p.patient_id
AND p.sex = 'M'

SELECT *
FROM appointments a
LEFT JOIN patients p
ON a.patient_id = p.patient_id
AND p.sex = 'M'
| visit_id | reason | patient_id | name | sex |
|---|---|---|---|---|
| 01 | checkup | 999 | ||
| 02 | infection | 888 | Zhang Wei | M |
SELECT *
FROM appointments a
LEFT JOIN patients p
ON a.patient_id = p.patient_id
WHERE p.sex = 'M'
1) FROM

2) WHERE

SELECT *
FROM appointments a
LEFT JOIN patients p
ON a.patient_id = p.patient_id
WHERE p.sex = 'M'
| visit_id | reason | patient_id | name | sex |
|---|---|---|---|---|
| 02 | infection | 888 | Zhang Wei | M |
SELECT *
FROM appointments a
LEFT JOIN patients p
ON a.patient_id = p.patient_id
WHERE p.sex = 'M'
| visit_id | reason | patient_id | name | sex |
|---|---|---|---|---|
| 02 | infection | 888 | Zhang Wei | M |
SELECT *
FROM appointments a
LEFT JOIN patients p
ON a.patient_id = p.patient_id
AND p.sex = 'M'
| visit_id | reason | patient_id | name | sex |
|---|---|---|---|---|
| 01 | checkup | 999 | ||
| 02 | infection | 888 | Zhang Wei | M |
SELECT *
FROM appointments a
INNER JOIN patients p
ON a.patient_id = p.patient_id
WHERE p.sex = 'M'
| visit_id | reason | patient_id | name | sex |
|---|---|---|---|---|
| 02 | infection | 888 | Zhang Wei | M |
SELECT *
FROM appointments a
INNER JOIN patients p
ON a.patient_id = p.patient_id
AND p.sex = 'M'
PostgreSQL에서 쿼리 성능 개선하기