๐ DataBase10 [DB] ์ตํฐ๋ง์ด์ (1) Mysql ์๋ฒ๋ก ์์ฒญํ ์ฟผ๋ฆฌ๋ ์ต์ ์ผ๋ก ์คํ ๋๊ธฐ ์ํด ์ต์ ์ ์คํ ๊ณํ์ ์๋ฆฝํ๋ ์์ ์ด ํ์.๋๋ถ๋ถ์ DBMS ์์๋ ์ตํฐ๋ง์ด์ ๊ฐ ์ด๋ฐ ๊ธฐ๋ฅ์ ๋ด๋นํ๋ค.Explain ๋ช ๋ น์ผ๋ก ์ฟผ๋ฆฌ์ ์คํ ๊ณํ ํ์ธ ๊ฐ๋ฅ. Mysql ์์๋ ๋น์ฉ ๊ธฐ๋ฐ ์ต์ ํ (Cost-based optimizer, CBO) ๋ฅผ ์ฌ์ฉํ๋ค. ๊ธฐ๋ณธ ๋ฐ์ดํฐ ์ฒ๋ฆฌํ ํ ์ด๋ธ ์ค์บ ์กฐ๊ฑด- ํ ์ด๋ธ ๋ ์ฝ๋ ๊ฑด์๊ฐ ์์, ์ธ๋ฑ์ค๋ฅผ ํํ๊ธฐ ๋ณด๋ค ํ ํ ์ด๋ธ ์ค์บ ํ๋ ํธ์ด ๋ ๋น ๋ฅธ ๊ฒฝ์ฐ- where ์ ์ด๋ on ์ ์ ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํ ์ ์๋ ์ ์ ํ ์กฐ๊ฑด์ด ์์ ๊ฒฝ์ฐ- ์ธ๋ฑ์ค ๋ ์ธ์ง ์ค์บ์ ์ฌ์ฉํ ์ ์๋ ์ฟผ๋ฆฌ๋๋ผ๋, ์ตํฐ๋ง์ด์ ๊ฐ ํ๋จํ ์กฐ๊ฑด ์ผ์น ๋ ์ฝ๋ ๊ฑด์๊ฐ ๋ง์ ๊ฒฝ์ฐ ์์ ๊ฐ์ ์กฐ๊ฑด์์ Mysql ์ตํฐ๋ง์ด์ ๋ ํ ํ ์ด๋ธ ์ค์บ์ ์๋ํ๋ค.ํ ํ ์ด๋ธ ์ค.. 2024. 8. 11. [DB] ํธ๋์ญ์ ๊ณผ ๋ฝ ๊ฐ๋ต ์ ๋ฆฌ ํธ๋์ญ์ ํธ๋์ญ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ์ ์ฅ์์, ๊ณ ๋ฏผํด์ผ ํ ๋ฌธ์ ๋ฅผ ํ์ด์ฃผ๋ ํ์์ ์ธ DBMS ์ ๊ธฐ๋ฅ.ํธ๋์ญ์ ์ฌ์ฉ ์ ์ฃผ์์ฌํญDBMS ์ ์ปค๋ฅ์ ๊ณผ ๋์ผํ๊ฒ ๊ผญ ํ์ํ ์ต์์ ์ฝ๋์๋ง ์ ์ฉํ๋ ๊ฒ์ด ์ข๋ค. ํธ๋์ญ์ ์ ๋ฒ์๋ฅผ ์ต์ํํ๋ผ๋ ์๋ฏธ. ๊ฐ ๋จ์ํ๋ก๊ทธ๋จ์ด ์ปค๋ฅ์ ์ ์์ ํ๋ ์๊ฐ์ด ๊ธธ์ด์ง ์๋ก ์ฌ์ฉ ๊ฐ๋ฅํ ์ฌ์ ์ปค๋ฅ์ ์ ๊ฐ์๋ ์ค์ด๋ ๋ค. ๋ฉ์ผ ์ ์ก์ด๋, ํ์ผ ์ ์ก ์์ ๋ฑ, ๋คํธ์ํฌ๋ฅผ ํตํด ์๊ฒฉ ์๋ฒ์ ํต์ ํ๋ ์์ ์ ํธ๋์ญ์ ๋ด์์ ์ ๊ฑฐํ๋ผ. ์น ์๋ฒ๋ฟ ์๋๋ผ DBMS ์๋ฒ๊น์ง ์ํํ ์ํฉ ๋ฐ์ ์ ์ฅ ๋ฐ์ดํฐ์ ๋จ์ ์กฐํ์ ๊ฒฝ์ฐ๋ ํธ๋์ญ์ ์ ํฌํจํ ํ์๊ฐ ์๋ค.๋ฝ๋ ์ฝ๋ ๋ฝ๋ ์ฝ๋ ์์ฒด๋ง์ ์ ๊ทธ๋ ๊ฒ InnoDB ์คํ ๋ฆฌ์ง ์์ง์ ๋ ์ฝ๋ ์์ฒด๊ฐ ์๋๋ผ, ์ธ๋ฑ์ค์ ๋ ์ฝ๋๋ฅผ ์ ๊ทผ๋ค. ์ธ๋ฑ์ค๊ฐ ์์ ๊ฒฝ์ฐ, ๋ด๋ถ.. 2024. 6. 27. [๋น ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ๋ถ์์ ์ํ NoSQL & Redis] Chapter 6 - Redis Cluster ์์คํ & ๋ก๊ทธ ๋ชจ๋ํฐ๋ง 6.1 ๋ณต์ & ๋ถ์ฐ ์์คํ ๊ฐ์ ์์ ๊ณต์ ์๋ฒ ์์ ์ ํ์ , ๊ณผ๋ถํ ์ ๋ค๋ฅธ ์๋ฒ ์์ ํ์ฉ์ผ๋ก ํจ์จ์ฑ ์ฆ๊ฐ ์ฑ๋ฅ ํฅ์ ๊ณผ๋ถํ ๋ฐ์ ์ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ํตํด ์์ ๋ถ๋ฐฐ ๊ฐ๋ฅ ์์ ์ฑ ๋ณต์ ์๋ฒ๋ก ์ฅ์ ๋์ฒดํ์ฌ ์๋ ๋ฐ์ดํฐ ์ฐธ์กฐ ๊ฐ๋ฅํด ์ํ ๋ถ์ฐ ๊ฐ๋ฅ Redis: ๋ง์คํฐ-์ฌ๋ ์ด๋ธ, ๋ง์คํฐ-์ฌ๋ ์ด๋ธ-์ผํฐ๋, ํํฐ์ ํด๋ฌ์คํฐ๋ก ๋ณต์ , ๋ถ์ฐ์ฒ๋ฆฌ ๊ฐ๋ฅ Partition ์ ํ ๋ฒ์ ํํฐ์ (Range Partition) Key-Value๋ฅผ ์๋ฒ์ ๋ถ์ฐ ์ ์ฅ ์๋ฒ ๋์ ๊ฒฐ์ ์ ๋ฐ๋ผ ์ ์ฅ ์์น ๊ฒฐ์ ์๋ฒ์ ์ ์ฅํ ๋ฐ์ดํฐ ์ ๋ถ๊ท ํ ๋ฌธ์ ๋ฐ์ ๊ฐ๋ฅ ํด์ ํํฐ์ (Hash Partition) Hash ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ฐ์ดํฐ ๋ถ์ฐ ์ ์ฅ Partition ๊ตฌํ ๋ฐฉ๋ฒ Client Side Partitioning ์ฌ์ฉ์๊ฐ ๋ฐ์ดํฐ ๋ถ.. 2023. 8. 20. [๋น ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ๋ถ์์ ์ํ NoSQL & Redis] Chapter 5 - Redis ์ํคํ ์ฒ 5.1 Redis ์ํคํ ์ฒ 1. ๋ฉ๋ชจ๋ฆฌ ์์ญ Resident Area ์ฌ์ฉ์์ ์์ ์ด ๋จผ์ ์ ์ฅ๋๋ ์์ญ ์ค์ ์์ ์ํ ๊ณต๊ฐ "WorkingSet" ์์ญ์ผ๋ก๋ ํํ Data Structure ์ํ ์ ๋ณด ์ ์ฅ์ ์ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ Redis Server ์ด์ ๋ฐ ๋ชจ๋ํฐ๋ง์ ํ์ 2. ํ์ผ ์์ญ AOF ํ์ผ ์ค์ํ ๋ฐ์ดํฐ ์ง์ ์ ์ฅ ์ค๋ ์ท ๋ฐ์ดํฐ DUMP ํ์ผ ์๋ ๋ฐ์ดํฐ ์ผ์์ ์ ์ฅ 3. ํ๋ก์ธ์ค ์์ญ Server Process Redis ์ธ์คํด์ค ๊ด๋ฆฌ ๋ฐ ์ฌ์ฉ์ ์์ ์ํ 4๊ฐ์ ๋ฉํฐ ์ฐ๋ ๋๋ก ๊ตฌ์ฑ Main thread, Sub thread 1(BIO-Close-File), Sub thread 2(BIO-AOF-Resync), Sub thread 3(BIO-Lazy-Free) Client Process .. 2023. 8. 20. [๋น ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ๋ถ์์ ์ํ NoSQL & Redis] Chapter 4 - Redis Data Modeling 4.1 ํค-๋ฐธ๋ฅ(Key-Value) ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ๊ฐ๋ 4.1.1 ์ฉ์ด ์ค๋ช ํ ์ด๋ธ(Table): ๊ด๊ณํ DB์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ๋ฅผ ํ ์ด๋ธ(table)์ด๋ผ๊ณ ํํํ๋ ๊ฒ์ฒ๋ผ Key-Value DB์์๋ ํ ์ด๋ธ(Table)์ด๋ผ๊ณ ํจ. ํ๋(Field) ๋๋ ์๋ฆฌ๋จผํธ(Element): ํ๋์ ํ ์ด๋ธ์ ๊ตฌ์ฑํ๊ณ ์๋ ์์๋ค์ ๊ด๊ณํ DB์์๋ ์ปฌ๋ผ(column)์ด๋ผ๊ณ ํ๋๋ฐ Key-Value DB์์๋ ํ๋(Field) ๋๋ ์๋ฆฌ๋จผํธ(Element)๋ผ๊ณ ๋งํจ. Key-Value DB์์๋ ํ๋์ Key์ ํ๋ ์ด์์ ํ๋ ๋๋ ์๋ฆฌ๋จผํธ๋ก ๊ตฌ์ฑ๋จ. Key-Value DB์์๋ ์ ์ฝ ์กฐ๊ฑด ๊ธฐ๋ฅ์ด ์ ๊ณต๋์ง ์์ง๋ง, HyperLogLogs ๋ฐ์ดํฐ ์์ฑ์ ํตํด ์ํ๋ ์กฐ๊ฑด์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ, ๊ด๋ฆฌํ ์ ์.. 2023. 8. 20. [๋น ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ๋ถ์์ ์ํ NoSQL & Redis] Chapter 3 - ํธ๋์ญ์ ์ ์ด & ์ฌ์ฉ์ ๊ด๋ฆฌ 3.1 Isolation & Lock ๋ชจ๋ NoSQL ์ ํ์ด ํธ๋์ญ์ ์ ์ ์ดํ์ง๋ ์์ง๋ง, Redis๋ ํธ๋์ญ์ ์ ์ด ๊ฐ๋ฅ. Redis๋ Read Commited ํ์ ์ ํธ๋์ญ์ ์ ์ด๋ ๊ฐ๋ฅํจ. Redis 4.0 ๋ฒ์ ์์ Data Sets ๋ฝ ๋งค์ปค๋์ฆ ์ ๊ณต. 3.2 CAS (Check and Set) CAS๋ ๋ฐ์ดํฐ ์ผ๊ด์ฑ ๊ณต์ ๋ฅผ ์ํ ๊ธฐ์ ๋ก ๋์ ์ฒ๋ฆฌ ์ ์ถฉ๋์ ํผํจ. Watch ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ถฉ๋ ๊ฐ์ง ๊ฐ๋ฅ. 3.3 commit & rollback EXEC: ๋ณ๊ฒฝํ ๋ฐ์ดํฐ ์ต์ข ์ ์ฅ์ ์ฌ์ฉ. DISCARD: ๋ณ๊ฒฝํ ๋ฐ์ดํฐ ์ต์ข ์ ์ฅํ์ง ์๊ณ ์ทจ์. 3.4 Index ์ ํ ๋ฐ ์์ฑ Redis๋ Primary Key Index์ Secondary Key Index๋ฅผ ์ ๊ณต. Exact Match์ Ra.. 2023. 8. 20. [๋น ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ๋ถ์์ ์ํ NoSQL & Redis] Chapter 2 - Redis ์ค์น ๋ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ Redis์ ์ฃผ์ ํน์ง Redis๋ NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ๋ถ๋ฅ๋๋ฉฐ Key-Value ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค. Key-Value DB์ธ ๋์์ In-Memory ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ์ ์ฅ ๊ธฐ์ ์ ์ ๊ณตํ๋ฏ๋ก ๋น ๋ฅธ Read/Write ์ฑ๋ฅ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ค์ํ ๋ฐ์ดํฐ ์ ํ์ ์ง์ํ๋ฉฐ String, Set, Sorted Set, Hash, List, HyperLogLogs ๋ฑ์ ์ ์ฅํ ์ ์์ต๋๋ค. ๋ฉ๋ชจ๋ฆฌ ์์ ๋ฐ์ดํฐ๋ฅผ Dump ํ์ผ๊ณผ AOF(Append Of File) ๋ฐฉ์์ผ๋ก ๋์คํฌ์ ์ ์ฅํ ์ ์์ต๋๋ค. Master/Slave Replication์ ํตํด ๋ฐ์ดํฐ์ ๋ถ์ฐ ๋ณต์ ๋ฅผ ์ง์ํ๋ฉฐ Query Off Loading์ ํตํด Master๋ Read/Write ์์ , Slave๋ Read ์์ ์ ์ํํ .. 2023. 8. 20. [๋น ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ๋ถ์์ ์ํ NoSQL & Redis] Chapter 1 - NOSQL ๊ฐ๋ Chapter1 - NOSQL ๊ฐ๋ NOSQL Not Only SQL ๊ธฐ์กด SQL ๋ฟ๋ง ์๋๋ผ, SQL ์ด ํ ์ ์๋ ์์ญ์ ๊ธฐ์ ๋ ์ ๊ณตํ๋ ๋์ฒด, ๋ณด์ ๊ธฐ์ ์ฅ์ ํด๋ผ์ฐ๋ ์ปดํจํ ํ๊ฒฝ์ ์ ํฉํ๋ค. RDBMS ์ ๋นํด ๋น์ฉ ๋ฐ ์ฑ๋ฅ ์ง์ฐ ๋ฌธ์ ์ ์ ํฉ ๊ตฌ์ถ ๋จ๊ณ์ ๋น์ฉ ๋ฐ์์ด ๋ํ๋ค. ์ ์ฐํ ๋ฐ์ดํฐ ๋ชจ๋ธ RDBMS ๋ ๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ฅผ ์ค๊ณํ๊ธฐ ์ํด ํ์ํ ์ ์ ๊ฐ๋ ๋ค์ด ๋ง๋ค. ๋น์ ํ ๊ตฌ์กฐ์ธ ์ปฌ๋ ์ , ํ ์ด๋ธ, ๋ ธ๋๋ ๊ตฌ์ฒด์ ์ด๊ณ ๊น๋ค๋กญ์ง ์๊ธฐ ๋๋ฌธ์, ์ค๊ณํ๊ธฐ ์ฝ๋ค. ๋น ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ํจ๊ณผ์ RDBMS ๋ณด๋ค ๋น ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ํจ๊ณผ์ ์ด๋ค. ๋น ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ๋์ํ๊ธฐ ์ํด ๋์จ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ด๊ธฐ ๋๋ฌธ. NOSQL ์ข ๋ฅ์ ์ ์ ๊ธฐ์ค ์์ฐจ์ ์ผ๋ก ์กฐ๊ฑด์ ๋ง์กฑํ๋ฉฐ ์ ์ ๊ธฐ์ค์ ์ธ๋ถํํ๋ค. 1. ์ด๋น 5๋ง๊ฑด ์ด์์ ๋ฐ์ดํฐ๊ฐ ๋ฐ.. 2023. 7. 23. ์ฟผ๋ฆฌ ์์ฑ ๋ฐ ์ต์ ํ ์์ ์คํ๋ง ํ๋ก์ ํธ, DB, ์์์ ์์ , ํ ๋น ์คํ๋ง, ์ฝํ ์ค๋น ๋ฑ๋ฑ์ ํ๊ณ ์๋ค. ํ๋ฃจ๊ฐ ๋๋ฌด ์งง๊ธฐ๋ ํ๊ณ ์ ์ ์ ๊ฒ ์๋ ๊ด์ฐฎ์ ์ฒด์ง์ด ๋๊ณ ์ถ์ ์์ฆ์ด๋ค. DB๊ณต๋ถ๋ Real Mysql์ ์ฝ๊ณ ์๋ค. ์ฝ๊ธฐ ๋๋ฌด ์ด๋ ค์ด ์ฑ ์ธ๋ฐ.. DB ์ง๋ฌธ๋ ์ ์ ๊ฐ๋ฐ์ ๋ฉด์ ์์ ๋ํ ์ผํ ์ง๋ฌธ๊น์ง ํ์๋ผ๊ณ ํ๊ธฐ ๋๋ฌธ์ ์ด์ฌํ ์ ๋ฆฌํ๋ฉด์ ์ฝ๊ณ ์๋ค. ์ฟผ๋ฆฌ ์์ฑ ๋ฐ ์ต์ ํ ๋ถ๋ถ์ ๊ณต๋ถ์ค์ธ๋ฐ ์ด ๋ถ๋ถ์์ ํท๊ฐ๋ฆฌ๋ ๊ฐ๋ ์ ์ ๋ฆฌํด๋ณผ ์๊ฐ์ด๋ค. Join ๊ธฐ๋ฒ Nested Loop Join ์ค์ฒฉ๋ ๋ฐ๋ณต๋ฌธ๊ณผ ์ ์ฌํ ๋ฐฉ์์ผ๋ก ์กฐ์ธ์ ์ํ ๋ฐ๋ณต๋ฌธ ์ธ๋ถ์ ํ ์ด๋ธ์ ์ ํ ํ ์ด๋ธ & ์ธ๋ถ ํ ์ด๋ธ์ด๋ผ ์นญํจ ๋ฐ๋ณต๋ฌธ ๋ด๋ถ์ ํ ์ด๋ธ์ ํํ ํ ์ด๋ธ & ๋ด๋ถ ํ ์ด๋ธ์ด๋ผ๊ณ ์นญํ๋ค. ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์ ํ ํ ์ด๋ธ ํ์ ์ถ์ถ ํ ํํ ํ ์ด๋ธ์ ์ฝ์ผ๋ฉฐ .. 2022. 5. 17. Flyway & DB Migration ์ ์ ์ฉ์์ผ ๋ณด์ ์คํ๋ง ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ๋๋ DB ํ ์ด๋ธ์ ํ ๋ฒ์ ๋ค ์์ฑํ๊ณ ์์ํ๋ ๊ฒ์ด ์๋ ํ์ํ ๊ฒ์ ๋ง๋ค์ด๊ฐ๋ฉด์ ์งํํ๊ณ ์์๋ค. ๊ทธ๋ฌ๊ณ Front๋ฅผ ๋ง๋ค์ง ์๊ธฐ ๋๋ฌธ์ DB data๋ฅผ ์ง์ mysql์ ์ด์ด ๋ฃ์ด์ฃผ๊ณ ์์ ํ๋ ์์ ์ ๋ฐ๋ณตํ๊ฒ ๋์๋ค. ์ฐธ ๋นํจ์จ์ ์ด๋ผ ์๊ฐํ๋ค. ๊ทธ๋ฌ๋ ๋์ค Flyway๋ผ๋ Tool์ ์๊ฒ ๋์๋ค. ์๋ก์ด ๊ธฐ์ ์ ๋ง์ฃผํ๋ฉด ํญ์ ๋ฏ์ ๊ธฐ๋ถ์ด์ง๋ง DDL์ ์๋ฐ์์ ์ง์ ๊ด๋ฆฌ๋ฅผ ํ๊ฒ ํด์ฃผ๋ ํด์ด๋ผ๋ ๊ฒ์ ์๊ฒ ๋์๊ณ , ๋์ฒ๋ผ ์คํค๋ง์ ์ฆ์ ๋ณ๊ฒฝ์ด ์ผ์ด๋ ๊ฒฝ์ฐ์ ์ฌ์ฉํด๋ณด๋ฉด ์ข๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์๋ค. ๊ทธ๋์ ํ๋ฒ ์ ๋ฆฌํด๋ณด๊ณ ์ฌ์ฉํด ๋ณผ ์๊ฐ์ด๋ค. ํน์๋ ํด์ Schema ๊ฐ ๋ญ์ผ? ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ตฌ์กฐ์ ์ ์ฝ์กฐ๊ฑด์ ๊ดํด ์ ๋ฐ์ ์ธ ๋ช ์ธ๋ฅผ ๊ธฐ์ ํ ๊ฒ! 1. ๊ฐ๋ ์คํค๋ง - ์ ์ฒด์ ์ธ ๋ทฐ 2.. 2022. 5. 3. ์ด์ 1 ๋ค์ ๋ฐ์ํ