์ต๊ทผ ํ๋ก์ ํธ์์ ๋ถ๋ฆฌ๋์ด ์๋ ์ฌ๋ฌ DB์ ๋ํด 2 Phase Commit์ ์ ์ฉํด์ผ ํ๋ ์ผ์ด ์๊ฒจ ์ ๋ฆฌํ๊ฒ ๋์๋ค.์ค๋ช
์ ์์ํ๊ธฐ์ ์์, ๊ฐ๋จํ๊ฒ ๋ถ์ฐ ํธ๋์ญ์
์ ๋ํด ์๊ธฐํ๊ณ ๋์ด๊ฐ๊ฒ ๋ค.๋ถ์ฐ ํธ๋์ญ์
์ ๊ธ๋ก๋ฒ ํธ๋์ญ์
์ด๋ผ๊ณ ๋ ํ๋ฉฐ, ํตํฉ๋์ด ๊ด๋ฆฌ๋๋ ์ฌ๋ฌ ๊ฐ์ ํธ๋์ญ์
๋ฌถ์์ ์๋ฏธํ๋ค.์ด๋, 1๏ธโฃ ๋ถ์ฐ ํธ๋์ญ์
์ ํฌํจ๋๋ ํธ๋์ญ์
์ ์๋ก ๋์ผํ DB์ ์กด์ฌํ ์๋ ์๊ณ , 2๏ธโฃ ์๋ก ๋ค๋ฅธ DB์ ์กด์ฌํ ์๋ ์๋ค.XA Datasource์ 2 Phase Commit ์ด๋?XA๋ 2 Phase Commit์ ํตํ ๋ถ์ฐ ํธ๋์ญ์
์ฒ๋ฆฌ๋ฅผ ์ํด X/Open์์ ์ ์ํ ํ์ค์ด๋ค.๋ถ์ฐ ํธ๋์ญ์
์์ ์ฌ์ฉ๋๋ ๊ฐ๊ฐ์ DB์๋ ํ๋์ XA Datasource๊ฐ ์กด์ฌํ๊ณ , ์ด XA Datasource๊ฐ XA C..
๐ข๏ธDatabase
๋จ๊ณ๋ณ๋ก ์ฑ์ฅํ์!MySQL์ ๊ฒฉ๋ฆฌ ์์ค ํธ๋์ญ์
์ ๊ฒฉ๋ฆฌ ์์ค(Isolation Level)์ด๋ ์ฌ๋ฌ ํธ๋์ญ์
์ด ๋์์ ์ฒ๋ฆฌ๋ ๋ ํน์ ํธ๋์ญ์
์ด ๋ค๋ฅธ ํธ๋์ญ์
์์ ๋ณ๊ฒฝํ๊ฑฐ๋ ์กฐํํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณผ ์ ์๊ฒ ํ์ฉํ ์ง ๋ง์ง๋ฅผ ๊ฒฐ์ ํ๋ ๊ฒ์ด๋ค. ๊ฒฉ๋ฆฌ ์์ค์ ํฌ๊ฒ 4๊ฐ์ง๋ก ๋๋๋ค. Read UNCOMMITTED Read COMMITTED REPEATABLE READ SERIALIZABLE 1๋ฒ๋ถํฐ 4๋ฒ๊น์ง ๋ค๋ก ๊ฐ์๋ก ๊ฐ ํธ๋์ญ์
๊ฐ์ ๋ฐ์ดํฐ ๊ฒฉ๋ฆฌ(๊ณ ๋ฆฝ) ์ ๋๊ฐ ๋์์ง๋ฉฐ, ๋์ ์ฒ๋ฆฌ ์ฑ๋ฅ๋ ์ผ๋ฐ์ ์ผ๋ก ๋จ์ด์ง ์ ์๋ค. ๊ฒฉ๋ฆฌ ์์ค์ด ๋์์ง์๋ก MySQL ์๋ฒ์ ์ฒ๋ฆฌ ์ฑ๋ฅ์ด ๋ง์ด ๋จ์ด์ง ๊ฒ์ผ๋ก ์๊ฐํ ์ ์์ง๋ง, ์ฌ์ค SERIALIZABLE ์์ค์ด ์๋๋ผ๋ฉด ํฌ๊ฒ ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํ์ง๋ ์์ผ๋ ์์ฌํด๋ ๋๋ค. ํ๋ ํน๋ณํ ๋ถ๋ถ์ด ์๋ค..
JOIN์ด ์ด๋ป๊ฒ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋์ง์ ๋ํด ์ฟผ๋ฆฌ ํจํด๋ณ๋ก ์์๋ณด๊ณ ์ฃผ์์ฌํญ์ ๋ํด์ ์์๋ณด๊ณ ์ ํ๋ค. 1. JOIN์ ์์์ ์ธ๋ฑ์ค ์ธ๋ฑ์ค ๋ ์ธ์ง ์ค์บ์ ์ธ๋ฑ์ค๋ฅผ ํ์(Seek)ํ๋ ๋จ๊ณ์ ์ธ๋ฑ์ค๋ฅผ ์ค์บ(Scan)ํ๋ ๊ณผ์ ์ผ๋ก ๊ตฌ๋ถํ ์ ์๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํด์ ์ฟผ๋ฆฌํ๋ ์์
์์๋ ๊ฐ์ ธ์ค๋ ๋ ์ฝ๋์ ๊ฑด์๊ฐ ์๋์ด๊ธฐ ๋๋ฌธ์ ์ธ๋ฑ์ค ์ค์บ ์์
์ ๋ถํ๊ฐ ์์ง๋ง ํน์ ์ธ๋ฑ์ค ํค๋ฅผ ์ฐพ๋ ์ธ๋ฑ์ค ํ์ ์์
์ ์๋์ ์ผ๋ก ๋ถํ๊ฐ ๋๋ค. ์กฐ์ธ ์์
์์ ๋๋ผ์ด๋น ํ
์ด๋ธ์ ์ฝ์ ๋๋ ์ธ๋ฑ์ค ํ์ ์์
์ ๋จ ํ ๋ฒ๋ง ์ํํ๊ณ , ๊ทธ ์ดํ๋ถํฐ๋ ์ค์บ๋ง ์คํํ๋ฉด ๋๋ค. ํ์ง๋ง ๋๋ฆฌ๋ธ ํ
์ด๋ธ์์๋ ์ธ๋ฑ์ค ํ์ ์์
๊ณผ ์ค์บ ์์
์ ๋๋ผ์ด๋น ํ
์ด๋ธ์์ ์ฝ์ ๋ ์ฝ๋ ๊ฑด์๋งํผ ๋ฐ๋ณตํ๋ค. ๋๋ผ์ด๋น ํ
์ด๋ธ๊ณผ ๋๋ฆฌ๋ธ ํ
์ด๋ธ์ด 1:1..
1. Redis Temporary Location For Speed ๋ฐ์ดํฐ์ ์๋ ์์ค๋ณด๋ค ๋ ๋น ๋ฅด๊ณ ํจ์จ์ ์ผ๋ก ์ก์ธ์คํ ์ ์๋ ์์ ๋ฐ์ดํฐ ์ ์ฅ์ ๋ง์ ์ ํ๋ฆฌ์ผ์ด์
์์ ์๋ ํฅ์์ ์ํด ์บ์๋ฅผ ์ด์ฉํ๋ค. ๋น์ฐํ ์๋๋ฅผ ๋์ด๋ ค๋ฉด ์๋ณธ์ ์ ๊ทผํ๋๊ฒ๋ณด๋ค ์บ์์ ์ ๊ทผํ๋๊ฒ ๋นจ๋ผ์ผ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐ์ดํฐ์ ๋ฐ๋ณต์ ์ก์ธ์ค๊ฐ ๋ง์์ง์๋ก ์บ์๋ฅผ ์ฌ์ฉํ๋๊ฒ ์ ๋ฆฌํ๋ค. ์๋์ ๊ฐ์ ํน์ง์ ๊ฐ์ง๋ค. ๋จ์ํ key-value ๊ตฌ์กฐ In-memory ๋ฐ์ดํฐ ์ ์ฅ์ (RAM) ๋น ๋ฅธ ์ฑ๋ฅ ํ๊ท ์์
์๋ < 1ms ์ด๋น ์๋ฐฑ๋ง ๊ฑด์ ์์
๊ฐ๋ฅ ์ด์ธ์๋ ์ต์ ๋ฒ์ ์ Redis๋ ๋ฐ์ดํฐ ์ ์ฅ๋ฟ๋ง ์๋๋ผ PUB/SUB ๊ตฌ์กฐ๋ฅผ ํตํด ๋ฉ์์ง๋ฅผ ์ ๋ฌํ๋ ์ฉ๋๋ก๋ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค. Redis๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ ์ ์ฅ ๊ณต๊ฐ์ ์ ์ฝ..
์ผ๋ฐ์ ์ผ๋ก ์น ์๋น์ค์ ๊ฐ์ด ์ผ๋ฐ์ ์ธ ์จ๋ผ์ธ ํธ๋์ญ์
์ฒ๋ฆฌ ํ๊ฒฝ์ DB์์๋ INSERT๋ UPDATE ์์
์ ๊ฒฝ์ฐ ๊ฑฐ์ ๋ ์ฝ๋ ๋จ์๋ก ๋ฐ์ํ๋ฏ๋ก ์ฑ๋ฅ์ ๋ฌธ์ ๊ฐ ๋๋ ๊ฒฝ์ฐ๊ฐ ๊ฑฐ์ ์๋ค. ํ์ง๋ง, SELECT์ ๊ฒฝ์ฐ ์ฌ๋ฌ ๊ฐ์ ํ
์ด๋ธ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์กฐํฉํด์ ๋น ๋ฅด๊ฒ ๊ฐ์ ธ์์ผ ํ๊ธฐ ๋๋ฌธ์ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ฌ์ผ ํ๋ค. ๋ฐ๋ผ์, SELECT ์ฟผ๋ฆฌ์ ๊ฐ ๋ถ๋ถ์ ์ฌ์ฉ๋ ์ ์๋ ๊ธฐ๋ฅ์ ์ฑ๋ฅ ์์ฃผ๋ก ์ดํด๋ณด๊ณ ์ ํ๋ค. 1. SELECT ์ ์ ์ฒ๋ฆฌ ์์ ์๋์ ๊ฐ์ ๋ค์ํ ํค์๋๋ฅผ ์ด์ฉํ SELECT ๋ฌธ์ด ์กด์ฌํ๋ค. ์ด๋ฐ ๊ฒฝ์ฐ ์ด๋ ํ ์ ์ด ๋จผ์ ์คํ๋๋์ง ์์ธกํด์ผ ์ต์ ํ๋ฅผ ํ ์ ์๋ค. SELECT, FROM, WHERE. GROUP BY, HAVING, ORDER BY, LIMIT SELECT s.emp_no, COUNT(D..
์ ํ๋ฆฌ์ผ์ด์
์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ ๋๋ ์กฐํํ๊ธฐ ์ํด DB์ ํต์ ํ ๋ DB ์๋ฒ๋ก ์ ๋ฌ๋๋ ๊ฒ์ SQL ๋ฟ์ด๋ค. SQL์ ์ด๋ ํ(What) ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๊ธฐ ์ํ ์ธ์ด์ด์ง, ์ด๋ป๊ฒ(How) ๋ฐ์ดํฐ๋ฅผ ์ฝ์์ง๋ฅผ ํํํ๋ ์ธ์ด๋ ์๋๋ฏ๋ก ์๋ฐ์ ๊ฐ์ ์ธ์ด์ ๋น๊ตํ์ ๋ ์ ํ์ ์ผ๋ก ๋๊ปด์ง ์ ์๋ค. ๊ทธ๋์ ์ฟผ๋ฆฌ๊ฐ ๋น ๋ฅด๊ฒ ์ํ๋๊ฒ ํ๋ ค๋ฉด DB ์๋ฒ์์ ์ฟผ๋ฆฌ๊ฐ ์ด๋ป๊ฒ ์์ฒญ์ ์ฒ๋ฆฌํ ์ง ์์ธกํ ์ ์์ด์ผ ํ๋ค. ์ ํ๋ฆฌ์ผ์ด์
์ฝ๋๋ฅผ ํ๋ํด์ ์ฑ๋ฅ์ ๊ฐ์ ํ๋ค๋ ๊ฒ์ ์ฝ์ง ์์ง๋ง, DBMS์์๋ ๋ช์ญ ๋ช๋ฐฑ ๋ฐฐ์ ์ฑ๋ฅ ํ๋์ ํํ ์ผ์ด๋ค. ๋ฐ๋ผ์ SQL ์์ฑ ๋ฐฉ๋ฒ์ด๋ ๊ท์น์ ๋ฌผ๋ก , ๋ด๋ถ์ ์ธ ์ฒ๋ฆฌ ๋ฐฉ์(์ตํฐ๋ง์ด์ )์ ๋ํด ๊ณต๋ถํด์ผ ํ๋ค. 1. MySQL ์ฐ์ฐ์ (1) ๋ ์ง ๋ค๋ฅธ DBMS์์ ๋ ์ง ํ์
์ ๋น๊ตํ๊ฑฐ๋ INSERTํ๋ ค..