JOIN์ด ์ด๋ป๊ฒ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋์ง์ ๋ํด ์ฟผ๋ฆฌ ํจํด๋ณ๋ก ์์๋ณด๊ณ ์ฃผ์์ฌํญ์ ๋ํด์ ์์๋ณด๊ณ ์ ํ๋ค.
1. JOIN์ ์์์ ์ธ๋ฑ์ค
์ธ๋ฑ์ค ๋ ์ธ์ง ์ค์บ์ ์ธ๋ฑ์ค๋ฅผ ํ์(Seek)ํ๋ ๋จ๊ณ์ ์ธ๋ฑ์ค๋ฅผ ์ค์บ(Scan)ํ๋ ๊ณผ์ ์ผ๋ก ๊ตฌ๋ถํ ์ ์๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํด์ ์ฟผ๋ฆฌํ๋ ์์
์์๋ ๊ฐ์ ธ์ค๋ ๋ ์ฝ๋์ ๊ฑด์๊ฐ ์๋์ด๊ธฐ ๋๋ฌธ์ ์ธ๋ฑ์ค ์ค์บ ์์
์ ๋ถํ๊ฐ ์์ง๋ง ํน์ ์ธ๋ฑ์ค ํค๋ฅผ ์ฐพ๋ ์ธ๋ฑ์ค ํ์ ์์
์ ์๋์ ์ผ๋ก ๋ถํ๊ฐ ๋๋ค.
์กฐ์ธ ์์
์์ ๋๋ผ์ด๋น ํ
์ด๋ธ์ ์ฝ์ ๋๋ ์ธ๋ฑ์ค ํ์ ์์
์ ๋จ ํ ๋ฒ๋ง ์ํํ๊ณ , ๊ทธ ์ดํ๋ถํฐ๋ ์ค์บ๋ง ์คํํ๋ฉด ๋๋ค.
ํ์ง๋ง ๋๋ฆฌ๋ธ ํ
์ด๋ธ์์๋ ์ธ๋ฑ์ค ํ์ ์์
๊ณผ ์ค์บ ์์
์ ๋๋ผ์ด๋น ํ
์ด๋ธ์์ ์ฝ์ ๋ ์ฝ๋ ๊ฑด์๋งํผ ๋ฐ๋ณตํ๋ค.
๋๋ผ์ด๋น ํ
์ด๋ธ๊ณผ ๋๋ฆฌ๋ธ ํ
์ด๋ธ์ด 1:1๋ก ์กฐ์ธ๋๋๋ผ๋ ๋๋ฆฌ๋ธ ํ
์ด๋ธ์ ์ฝ๋ ๊ฒ์ด ํจ์ฌ ๋ ํฐ ๋ถํ๋ฅผ ์ฐจ์งํ๋ค.
๋ฐ๋ผ์, ์ตํฐ๋ง์ด์ ๋ ํญ์ ๋๋ผ์ด๋น ํ ์ด๋ธ์ด ์๋๋ผ ๋๋ฆฌ๋ธ ํ ์ด๋ธ์ ์ต์ ์ผ๋ก ์ฝ์ ์ ์๊ฒ ์คํ๊ณํ์ ์๋ฆฝํ๋ค.
์๋์ employees ํ ์ด๋ธ๊ณผ dept_emp ํ ์ด๋ธ์ ์กฐ์ธํ๋ ์์๋ฅผ ๋ณด์.
SELECT *
FROM A a, B b
WHERE a.emp_no=b.emp_no;
์ด ๋ํ ์ด๋ธ์ ์กฐ์ธ ์ฟผ๋ฆฌ์์ A ํ ์ด๋ธ์ emp_no ์ปฌ๋ผ๊ณผ B ํ ์ด๋ธ์ emp_no ์ปฌ๋ผ์ ๊ฐ๊ฐ ์ธ๋ฑ์ค๊ฐ ์์ ๋์ ์์ ๋ ์กฐ์ธ ์์๊ฐ ์ด๋ป๊ฒ ๋ฌ๋ผ์ง๋ ํ๋ฒ ์ดํด๋ณด์.
- 1. ๋ ์ปฌ๋ผ ๋ชจ๋ ๊ฐ๊ฐ ์ธ๋ฑ์ค๊ฐ ์๋ ๊ฒฝ์ฐ
- ๊ฐ ๋ ํ ์ด๋ธ์ emp_no ์ปฌ๋ผ์ ๋ชจ๋ ์ธ๋ฑ์ค๊ฐ ์๋ ๊ฒฝ์ฐ์๋ ์ด๋ ํ ์ด๋ธ์ ๋๋ผ์ด๋น ํ ์ด๋ธ์ผ๋ก ์ ํํ๋ ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํด ๋๋ฆฌ๋ธ ํ ์ด๋ธ์ ๊ฒ์ ์์ ์ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌ ๊ฐ๋ฅํ๋ค.
- ์ตํฐ๋ง์ด์ ๋ ํต๊ณ ์ ๋ณด๋ฅผ ์ด์ฉํด ์ ์ ํ ๋๋ผ์ด๋น ํ ์ด๋ธ์ ์ ํํ๋ค. ๊ฐ ํ ์ด๋ธ์ ํต๊ณ ์ ๋ณด์ ์๋ ๋ ์ฝ๋ ๊ฑด์์ ๋ฐ๋ผ ๋ ์ค์ ํ๋๊ฐ ๋๋ผ์ด๋น ํ ์ด๋ธ์ด ๋๋ ๊ฒ์ด๋ค.
- ๋ณดํต ์ด๋ ์ชฝ์ด ๋๋ผ์ด๋น ํ ์ด๋ธ์ด ๋๋ ์ตํฐ๋ง์ด์ ๊ฐ ์ ํํ๋ ๋ฐฉ๋ฒ์ด ์ต์ ์ผ ๋๊ฐ ๋ง๋ค.
- 2. A.emp_no์๋ง ์ธ๋ฑ์ค๊ฐ ์๋ ๊ฒฝ์ฐ
- ์ตํฐ๋ง์ด์ ๋ ํญ์ B ํ ์ด๋ธ์ ๋๋ผ์ด๋น ํ ์ด๋ธ๋ก ์ ํํ๊ณ , A ํ ์ด๋ธ์ ๋๋ฆฌ๋ธ ํ ์ด๋ธ๋ก ์ ํํ๋ค.
- ๊ทธ ์ด์ ๋, A.emp_no์๋ง ์ธ๋ฑ์ค๊ฐ ์์ ๋ B ํ ์ด๋ธ์ด ๋๋ฆฌ๋ธ ํ ์ด๋ธ๋ก ์ ํ๋๋ค๋ฉด employees ํ ์ด๋ธ์ ๋ ์ฝ๋ ๊ฑด์๋งํผ B ํ ์ด๋ธ์ ํ ์ค์บํด์ผ๋ง "a.emp_no=b.emp_no" ์กฐ๊ฑด์ ์ผ์นํ๋ ๋ ์ฝ๋๋ฅผ ์ฐพ์ ์ ์๋ค.
- "e.emp_no=10001"๊ณผ ๊ฐ์ด employees ํ ์ด๋ธ์ ์์ฃผ ํจ์จ์ ์ผ๋ก ๊ฒ์ํ ์ ์๋ ์กฐ๊ฑด์ด ์๋๋ผ๋ ์ตํฐ๋ง์ด์ ๋ Bํ ์ด๋ธ์ ๋๋ผ์ด๋น ํ ์ด๋ธ๋ก ์ ํํ ํ๋ฅ ์ด ๋๋ค.
- 3. B.emp_no์๋ง ์ธ๋ฑ์ค๊ฐ ์๋ ๊ฒฝ์ฐ
- 2๋ฒ์ ๊ฒฝ์ฐ์ ๋ฐ๋๋ก ์ฒ๋ฆฌ๋๋ค.
- A ํ ์ด๋ธ์ ๋ฐ๋ณต๋ ํ ์ค์บ์ ํผํ๊ธฐ ์ํด Aํ ์ด๋ธ์ ๋๋ผ์ด๋น ํ ์ด๋ธ, B ํ ์ด๋ธ์ ๋๋ฆฌ๋ธ ํ ์ด๋ธ๋ก ์ ํํ๋ค.
- 4. ๋ ์ปฌ๋ผ ๋ชจ๋ ์ธ๋ฑ์ค๊ฐ ์๋ ๊ฒฝ์ฐ
- 1๋ฒ์ ๊ฒฝ์ฐ์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ด๋ ํ ์ด๋ธ์ ๋๋ผ์ด๋น ํ ์ด๋ธ๋ก ์ ํํ๋๋ผ๋ ๋๋ฆฌ๋ธ ํ ์ด๋ธ์ ํ ์ค์บ์ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ์ตํฐ๋ง์ด์ ๊ฐ ์ ์ ํ ๋๋ผ์ด๋น ํ ์ด๋ธ์ ์ ํํ๋ค.
- ๋จ, ๋ ์ฝ๋ ๊ฑด์๊ฐ ์ ์ ํ ์ด๋ธ์ ๋๋ผ์ด๋น ํ ์ด๋ธ๋ก ์ ํํ๋ ๊ฒ์ด ํจ์ฌ ํจ์จ์ ์ด๋ค.
- ์ด๋ ๋ฏ ์กฐ์ธ ์กฐ๊ฑด์ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์ ํ ์ธ๋ฑ์ค๊ฐ ์๋ ๊ฒฝ์ฐ MySQL 8.0.18 ๋ฒ์ ๋ถํฐ๋ ํด์ ์กฐ์ธ์ผ๋ก ์ฒ๋ฆฌํ๋ค.
2. JOIN ์ปฌ๋ผ์ ๋ฐ์ดํฐ ํ์
์ด์ ํฌ์คํ
์์ WHERE ์ ์ ์ฌ์ฉ๋๋ ์กฐ๊ฑด์์ ๋น๊ต ๋์ ์ปฌ๋ผ๊ณผ ํํ์์ ๋ฐ์ดํฐ ํ์
์ ๋ฐ๋์ ๋์ผํ๊ฒ ์ฌ์ฉํด์ผ ํ๋ค๊ณ ํ์๋ค.
JOIN์ ์กฐ๊ฑด์์ ๋์ผํ๊ฒ ์ ์ฉ๋๋ค. ์กฐ์ธ ์ปฌ๋ผ ๊ฐ์ ๋น๊ต์์ ๊ฐ ์ปฌ๋ผ์ ๋ฐ์ดํฐ ํ์
์ด ์ผ์นํ์ง ์์ผ๋ฉด ์ธ๋ฑ์ค๋ฅด ํจ์จ์ ์ผ๋ก ์ฌ์ฉ ๋ถ๊ฐํ๋ค.
๋ง์ฝ ์กฐ์ธ ์กฐ๊ฑด์ ์์ชฝ ํญ์ ๋ฐ์ดํฐ ํ์
์ด ๋ค๋ฅด๋ค๋ฉด ๋ ํ
์ด๋ธ ๋ชจ๋ ํ ํ
์ด๋ธ ์ค์บ์ผ๋ก ์ ๊ทผํ๋ค.
์ตํฐ๋ง์ด์ ๋ ๋๋ฆฌ๋ธ ํ
์ด๋ธ์ด ์ธ๋ฑ์ค ๋ ์ธ์ง ์ค์บ์ ์ฌ์ฉํ์ง ๋ชปํ๊ณ , ๋๋ฆฌ๋ธ ํ
์ด๋ธ์ ํ ํ
์ด๋ธ ์ค์บ์ด ํ์ํ ๊ฒ์ ์๊ณ ์กฐ๊ธ์ด๋ผ๋ ๋นจ๋ฆฌ ์คํ๋๋๋ก ์กฐ์ธ ๋ฒํผ๋ฅผ ํ์ฉํ ํด์ ์กฐ์ธ์ ์ฌ์ฉํ๋ค.
๋ฐ์ดํฐ ํ์ ๋ถ์ผ์น๊ฐ ์ธ๋ฑ์ค ์ฌ์ฉ์ ๋ฌธ์ ๋ฅผ ์ผ์ผํค๋ ๊ฒฝ์ฐ๋ ์๋์ ๊ฐ๋ค.
- CHAR ํ์ ๊ณผ INT ํ์ ์ ๋น๊ต์ ๊ฐ์ด ๋ฐ์ดํฐ ํ์ ์ ์ข ๋ฅ๊ฐ ์์ ํ ๋ค๋ฅธ ๊ฒฝ์ฐ
- ๊ฐ์ CHAR ํ์ ์ด๋๋ผ๋ ๋ฌธ์ ์งํฉ์ด๋ ์ฝ๋ ์ด์ ์ด ๋ค๋ฅธ ๊ฒฝ์ฐ
- ๊ฐ์ INT ํ์ ์ด๋๋ผ๋ ๋ถํธ(Sign)์ ์กด์ฌ ์ฌ๋ถ๊ฐ ๋ค๋ฅธ ๊ฒฝ์ฐ
์ฝ๋ ์ด์ ์ด๋?
ํน์ ๋ฌธ์ ์ ์ ์ํด DB์ ์ ์ฅ๋ ๊ฐ๋ค์ ๋น๊ต ๊ฒ์ํ๊ฑฐ๋ ์ ๋ ฌ ๋ฑ์ ์์ ์ ์ํด ๋ฌธ์๋ค์ ์๋ก ๋น๊ตํ ๋ ์ฌ์ฉํ๋ ๊ท์น๋ค์ ์งํจ
ex) utf8_general_ci, latin1_general_ci
๋ฐ์ดํฐ ํ์
๋ถ์ผ์น๊ฐ ๋ฌธ์ ๊ฐ ๋์ง ์๋ ๊ฒฝ์ฐ๋ ์๋ค.
CHAR - VARCHAR , INT-BIGINT(SMALLINT), DATE-DATETIME ํ์
์ฌ์ด์์๋ ํ์
๋ถ์ผ์น ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์๋๋ค.
3. OUTER JOIN์ ์ฑ๋ฅ๊ณผ ์ฃผ์์ฌํญ
INNER JOIN์ ์กฐ์ธ ๋์ ํ
์ด๋ธ์ ๋ชจ๋ ์กด์ฌํ๋ ๋ ์ฝ๋๋ง ๊ฒฐ๊ณผ ์งํฉ์ผ๋ก ๋ฐํํ๋ค.
ํด๋น INNER JOIN์ ํน์ฑ ๋๋ฌธ์ OUTER JOIN์ผ๋ก๋ง ์กฐ์ธ์ ์คํํ๋ ์๋์ ๊ฐ์ ์ฟผ๋ฆฌ๋ ๋ง์ด ๋ณผ ์ ์๋ค.
SELECT *
FROM A a
LEFT JOIN B b ON b.emp_no=a.emp_no
LEFT JOIN C c ON c.dept_no=b.dept_no AND C.dept_name='Dev';
ํด๋น ์ฟผ๋ฆฌ ์๋ ์คํ ๊ณํ์ ๋ณด๋ฉด ์ ์ผ ๋จผ์ A ํ ์ด๋ธ์ ํ ์ค์บํ๋ฉด์ dept_emp ํ ์ด๋ธ๊ณผ departments ํ ์ด๋ธ์ ๋๋ฆฌ๋ธ ํ ์ด๋ธ๋ก ์ฌ์ฉํ๋ค๋ ๊ฒ์ ์ ์ ์๋ค.
MySQL ์ตํฐ๋ง์ด์ ๋ ์ ๋ OUTER JOIN๋๋ ํ
์ด๋ธ์ ๋๋ผ์ด๋น ํ
์ด๋ธ๋ก ์ ํํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ํ ์ค์บ์ด ํ์ํ A ํ
์ด๋ธ์ ๋๋ผ์ด๋น ํ
์ด๋ธ๋ก ์ ํํ๋ค.
๊ทธ ๊ฒฐ๊ณผ ์ฟผ๋ฆฌ์ ์ฑ๋ฅ์ด ๋จ์ด์ง๊ฒ ๋๋ค.
๋ง์ฝ, ์ด ์ฟผ๋ฆฌ์ INNER JOIN์ ์ฌ์ฉํ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด Cํ ์ด๋ธ์์ ๋ถ์๋ช ์ด 'Dev'์ธ ๋ ์ฝ๋ 1๊ฑด๋ง ์ฐพ์์ ์กฐ์ธ์ ์คํํ๋ ์๋์ ๊ฐ์ ์คํ ๊ณํ์ ์ ํํ์ ๊ฒ์ด๋ค.
์ด๋ ๋ฏ INNER JOIN์ผ๋ก ์ํํด๋ ๋๋ ๊ฒ์ OUTER JOIN์ผ๋ก ์๋ชป ํ์ด๋์ ๋ ์ตํฐ๋ง์ด์ ๊ฐ ์กฐ์ธ ์์๋ฅผ ๋ณ๊ฒฝํ๋ฉด์ ์ํํ ์ ์๋ ์ต์ ํ์ ๊ธฐํ๋ฅผ ์์ด๋ฒ๋ฆด ์ ์๋ค. ๋ฐ๋ผ์, ๊ผญ ํ์ํ ๊ฒฝ์ฐ๊ฐ ์๋๋ผ๋ฉด INENR JOIN์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
OUTER ์กฐ์ธ์ ํ๋ฉด์ ๋ง์ด ํ๋ ์ค์
SELECT *
FROM A a
INNER JOIN B b ON b.emp_no=a.emp_no
WHERE b.dept_no='d001';
์ ์ฟผ๋ฆฌ์ฒ๋ผ OUTER JOIN๋๋ ํ ์ด๋ธ์ ๋ํ ์กฐ๊ฑด์ WHERE ์กฐ๊ฑด์ ๋ช ์ํ๋ ์ค์๋ฅผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค.
ON ์ ์ ์กฐ์ธ ์กฐ๊ฑด์ ๋ช
์ํ์ง๋ง OUTER JOIN ๋๋ ํ
์ด๋ธ์ธ B์ 'dept_no='d001'' ์กฐ๊ฑด์ WHERE ์ ์ ๋ฐฐ์นํ๋ ๊ฒ์
MySQL ์ตํฐ๋ง์ด์ ๊ฐ LEFT JOIN ์ ์๋์ ๊ฐ์ด INNER์กฐ์ธ์ผ๋ก ๋ณํํด์ ์คํํ๊ฒ ๋ง๋ค์ด๋ฒ๋ฆฐ๋ค.
SELECT *
FROM A a
INNER JOIN B b ON b.emp_no=a.emp_no
WHERE b.dept_no='d001';
์ ์์ ์ผ๋ก ์ฟผ๋ฆฌ๋ฅผ ์คํ์ํค๊ณ ์ถ๋ค๋ฉด dept_no='d001' ์กฐ๊ฑด์ LEFT JOIN์ ON์ ์ผ๋ก ์ฎ๊ฒจ์ผ ํ๋ค.
์ฌ๊ธฐ์๋ ์์ธ๋ ์๋ค
์์ธ์ ์ผ๋ก OUTER JOIN์ผ๋ก ์ฐ๊ฒฐ๋๋ ํ
์ด๋ธ์ ์ปฌ๋ผ์ ๋ํ ์กฐ๊ฑด์ WHERE ์ ์ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ฐ,
๋ค์๊ณผ ๊ฐ์ด ANTI-JOIN ํจ๊ณผ๋ฅผ ๊ธฐ๋ํ๋ ๊ฒฝ์ฐ๊ฐ ๊ทธ๋ฌํ๋ค.
SELECT *
FROM A a
LEFT JOIN B b ON b.emp_no=a.emp_no
WHERE b.emp_no IS NULL
LIMIT 10;
์ ์ฟผ๋ฆฌ๋ A์ ๋ ์ฝ๋ ์ค์์ B ๋ ์ฝ๋์ ํด๋น ๋์ง ์๋ ๋ ์ฝ๋๋ฅผ ์กฐํํ๋ ์ฟผ๋ฆฌ์ธ๋ฐ, ์ด ๊ฒฝ์ฐ์ WHERE ์ ์ B ํ
์ด๋ธ์ emp_no ์ปฌ๋ผ์ด NULL์ธ ๋ ์ฝ๋๋ค๋ง ์กฐํํ๋ค. ์ด๋ฐ ํํ์ ์๊ฑด์ด ์์ฐํฐ ํ
์ด๋ธ์ ์ปฌ๋ผ์ด WHERE ์ ์ ์ฌ์ฉ๋ ์ ์๋ ์ ์ผํ ๊ฒฝ์ฐ์ด๋ค.
์ด ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๊ณ ๋ WHERE ์ ์ OUTER JOIN ํ
์ด๋ธ์ ์ปฌ๋ผ ์กฐ๊ฑด์ด ๋ค์ด๊ฐ๋ค๋ฉด INNER JOIN์ผ๋ก ๋ณ๊ฒฝ๋๋ค๋ ๊ฒ์ ์ดํดํ์.
4. JOIN๊ณผ ์ธ๋ํค (FOREIGN KEY)
DB์ ์ธ๋ํค๊ฐ ์์ฑ๋ผ ์์ด์ผ๋ง ์กฐ์ธํ ์ ์๋์ง ์๋ฌธ์ ํ์ ์ ์๋ค.
๊ฒฐ๋ก ์ ์ธ๋ํค๋ ์กฐ์ธ๊ณผ ์๋ฌด๋ฐ ์ฐ๊ด์ด ์๋ค. ์ธ๋ํฌ๋ฅผ ์์ฑํ๋ ์ฃผ๋ชฉ์ ์ ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด์๋ค.
์ธ๋ํค์ ์ฐ๊ด๋ ๋ฌด๊ฒฐ์ฑ์ ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ์ด๋ผ๊ณ ํํํ๋ค.
์ฌ์ ํ
์ด๋ธ๊ณผ ๋ถ์ ํ
์ด๋ธ์ด ์์ ๋, ์ฌ์ ํ
์ด๋ธ์๋ ์ฌ์์ ๋ถ์ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ์ปฌ๋ผ์ด ์๋ค.
์ด๋ ์ฌ์ ํ
์ด๋ธ์ ๋ถ์ ์ฝ๋๋ ๋ฐ๋์ ๋ถ์ ํ
์ด๋ธ์ ์กด์ฌํ๋ ๋ถ์ ์ ๋ณด๋ง ์ฌ์ฉํด์ผ ํ๋๋ฐ ์ด๊ฒ ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ์ด๋ค.
์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ์ด ๊นจ์ง๋ ๋ฌธ์ ๋ฅผ DBMS ์ฐจ์์์ ๋ง๊ธฐ ์ํด ์ธ๋ํค๋ฅผ ์์ฑํ๋ ๊ฒ์ด๋ค.
ํ์ง๋ง SQL๋ก ํ ์ด๋ธ ๊ฐ์ ์กฐ์ธ์ ์ํํ๋ ๊ฒ์ ์ ํ ๋ฌด๊ดํ ์ปฌ๋ผ์ ์กฐ์ธ ์กฐ๊ฑด์ผ๋ก ์ฌ์ฉํด๋ ๋ฌธ๋ฒ์ ์ผ๋ก ๋ฌธ์ ๊ฐ ๋์ง ์๋๋ค.
'๐ข๏ธDatabase' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
XA Datasource์ 2 Phase Commit(2PC)ย ์ ๋ํด์ (0) | 2024.05.08 |
---|---|
MySQL์ ๊ฒฉ๋ฆฌ ์์ค(Isolation Level) (0) | 2023.09.11 |
Redis ์๊ณ ์ฌ์ฉํ์! (0) | 2023.08.20 |
[Real MySQL 8.0] ์ฟผ๋ฆฌ ์์ฑ ๋ฐ ์ต์ ํ - SELECT (0) | 2023.08.14 |
[Real MySQL 8.0] MySQL ์ฐ์ฐ์์ ๋ด์ฅํจ์ (0) | 2023.08.08 |