728x90
SELECT *
FROM (SELECT colA, colB FROM tableA
UNION
SELECT colA, colB FROM tableB)
WHERE colA > 1
https://stackoverflow.com/questions/5437507/union-with-where-clause
CASE 1) ๊ฐ ๊ฐ์ table์ where ์ ์ ๋จผ์ ์ฌ์ฉ
SELECT colA, colB FROM tableA WHERE colA > 1
UNION
SELECT colA, colB FROM tableB WHERE colA > 1
CASE 2) UNION ํ where ์ฌ์ฉ
SELECT *
FROM (SELECT colA, colB FROM tableA
UNION
SELECT colA, colB FROM tableB)
WHERE colA > 1
EXPLAIN์ ์ฌ์ฉํ ์ ์๋ ํ๊ฒฝ์ด๋ผ๋ฉด Optimizer๊ฐ ๋๋ํด์ ๋ ์ฟผ๋ฆฌ์ ์ฐจ์ด๋ ํฌ๊ฒ ๋์ง ์๋๋ค. ํ์ง๋ง ๋ฒ์ ์ด ๋ฎ์ ํ๊ฒฝ์์ ์์ ์ Full Scan์ธ๊ฐ๋ฅผ ๋ฐ์ ธ๋ด์ผํ๋ค. CASE1์ ๊ฒฝ์ฐ tableA์์ Where์ ์ ๊ตฌ๋ฌธ์ด index๊ฐ ์กํ ์ปฌ๋ผ์ธ์ง๊ฐ ์ค์ํ๋ค. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ tableA, tableB ๋ Where์ ์ ์ํํ ํ view๋ฅผ ์์ฑํ๊ธฐ ๋๋ฌธ์ ๋๋ ค์ง๋ค. CASE2์ ๊ฒฝ์ฐ ๋ ํ ์ด๋ธ ๋ชจ๋ Full Scan ํ Where ์ ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ ์ฐจ์ด๊ฐ ์๋ค.
์์ ๋ ๊ฒฝ์ฐ ์ฒ๋ผ ๊น๋ํ ์ฟผ๋ฆฌ๋ ์๊ธฐ์ ํญ์ index๋ฅผ ์ฌ์ฉํ๋์ง EXPLAIN๊ณผ relation์ ๋ฐ์ ธ ๋ด์ผํ๋ค.
๋ฐ์ํ
'๐ข๏ธ Database' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐ์ดํฐ ํ์ง์ ๋น๋ฐ (2) (0) | 2024.07.21 |
---|---|
๋ฐ์ดํฐ ํ์ง์ ๋น๋ฐ (1) (0) | 2024.07.17 |
[MySQL] You have an error in your SQL syntax .. ๋์ Query๋ ํ๋ ธ์ด,, (0) | 2024.02.10 |
[Airflow] airflow-init alembic.script.revision.ResolutionError: No such revision or branch ์ค๋ฅ (0) | 2023.12.20 |
[Airflow] airflow db ์ด๊ธฐํ ์ค๋ฅ (0) | 2023.12.20 |