๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’Ž/mongoDB3

[mongoDB] ์ธ๋ฑ์Šค(Index) 1) ์ธ๋ฑ์Šค๋ž€? 1-1) ์ธ๋ฑ์Šค์˜ ๊ตฌ๋ถ„ 1-1-1) ์—ญํ•  1-1-2) ์ €์žฅ ๋ฐฉ์‹ 1-1-3) ์ค‘๋ณต ํ—ˆ์šฉ ์—ฌ๋ถ€ 1-1-4) ๊ธฐ๋Šฅ 1-2) ์ธ๋ฑ์Šค ๋‚ด๋ถ€ 1-3) ์ธ๋ฑ์Šค ํ‚ค ์—”ํŠธ๋ฆฌ ์ž๋ฃŒ ๊ตฌ์กฐ 2) ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• 2-1) ์ธ๋ฑ์Šค ๋ ˆ์ธ์ง€ ์Šค์บ” 2-2) ์ธ๋ฑ์Šค ํ”„๋ฆฌํ”ฝ์Šค(Prefix) ์Šค์บ” 2-3) ์ปค๋ฒ„๋ง ์ธ๋ฑ์Šค 2-4) ์ธ๋ฑ์Šค ํ’€ ์Šค์บ” 2-5) ์ปดํŒŒ์šด๋“œ ์ธ๋ฑ์Šค (Compound Index) 2-5-1) ๋ณตํ•ฉ ํ•„๋“œ ์ธ๋ฑ์Šค 2-6) MongoDB์˜ Hash Index 2-7) ๋ฉ€ํ‹ฐ ํ‚ค ์ธ๋ฑ์Šค (Multi key Index) 2-7-1) ๋ฉ€ํ‹ฐ ํ‚ค ์ธ๋ฑ์Šค์˜ ์ •๋ ฌ 2-8) Full Text Search Index (์ „๋ฌธ ๊ฒ€์ƒ‰ ์ธ๋ฑ์Šค) 2-8-1) N-Gram ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ˜•ํƒœ์†Œ ๋ถ„์„๊ณผ N-Gram์˜ ์žฅ๋‹จ์  ์ฐธ๊ณ  ์ž๋ฃŒ .. 2022. 7. 18.
[mongoDB] ์ƒค๋”ฉ(Sharding) 1) ์ƒค๋”ฉ(Sharding)์ด๋ž€? 1.1) ์ƒค๋”ฉ์˜ ํ•„์š”์„ฑ 1.2) ์ƒค๋”ฉ์˜ ์ข…๋ฅ˜ 2) MongoDB ์ƒค๋”ฉ ์•„ํ‚คํ…์ฒ˜ 2.1) ์ปจํ”ผ๊ทธ ์„œ๋ฒ„ ์ปจํ”ผ๊ทธ ์„œ๋ฒ„์˜ ๋ณต์ œ ๋ฐฉ์‹ 2.2) ๋ผ์šฐํ„ฐ ์ฃผ์š” ์—ญํ•  ์ฟผ๋ฆฌ ๋ถ„์‚ฐ ๋ฐฐํฌ 3) ์ƒค๋”ฉ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฒญํฌ 3.1) ๋ ˆ์ธ์ง€ ์ƒค๋”ฉ(Range Sharding) 3.2) ํ•ด์‹œ ์ƒค๋”ฉ(Hashed Sharding) ์ œ์•ฝ ์‚ฌํ•ญ 3.3) ์ง€์—ญ ๊ธฐ๋ฐ˜ ์ƒค๋”ฉ(Zone Sharding) ์‚ฌ์šฉ ๋ชฉ์  4) ํ”„๋ผ์ด๋จธ๋ฆฌ ์ƒค๋“œ 5) ์ฒญํฌ ๋ฐธ๋Ÿฐ์‹ฑ 5.1) ์ƒค๋“œ ํด๋Ÿฌ์Šคํ„ฐ ๋ฐธ๋Ÿฐ์„œ 5.2) ์ฒญํฌ ์Šคํ”Œ๋ฆฟ(Chunk split) 6) ์ƒค๋”ฉ์œผ๋กœ ์ธํ•œ ์ œ์•ฝ 6.1) ํŠธ๋žœ์žญ์…˜ 6.2) ์ƒค๋”ฉ๊ณผ ์œ ๋‹ˆํฌ ์ธ๋ฑ์Šค 6.3) ์กฐ์ธ๊ณผ ๊ทธ๋ž˜ํ”„ ์ฟผ๋ฆฌ ์ฐธ๊ณ ์ž๋ฃŒ 1) ์ƒค๋”ฉ(Sharding)์ด๋ž€? ์ƒค๋”ฉ์ด๋ž€ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ์„œ๋ฒ„์— ๋ถ„์‚ฐํ•ด์„œ ์ €์žฅํ•˜๊ณ  ์ฒ˜๋ฆฌ.. 2022. 7. 18.
[mongoDB] WiredTiger ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„ 1) ํ”Œ๋Ÿฌ๊ทธ์ธ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„ ํŠน์„ฑ ๋น„๊ต 2) ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„ ํ˜ผํ•ฉ ์‚ฌ์šฉ 3) WiredTiger ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„ 4) WiredTiger ์Šคํ† ๋ฆฌ์ง€์˜ ์ €์žฅ ๋ฐฉ์‹ 5) ๋ฐ์ดํ„ฐ ํŒŒ์ผ ๊ตฌ์กฐ 6) WiredTiger์˜ ๋‚ด๋ถ€ ์ž‘๋™ ๋ฐฉ์‹ ๊ณต์œ  ์บ์‹œ ํ•˜์ž๋“œ ํฌ์ธํ„ฐ(Hazard Pointer) ์Šคํ‚ต ๋ฆฌ์ŠคํŠธ(Skip-List) ์บ์‹œ ์ด๋น…์…˜(Cache Eviction) Checkpoint MVCC ๋ฐ์ดํ„ฐ ๋ธ”๋ก(ํŽ˜์ด์ง€) ์šด์˜์ฒด์ œ ์บ์‹œ(ํŽ˜์ด์ง€ ์บ์‹œ) ์••์ถ• ์•”ํ˜ธํ™” ์ฐธ๊ณ ์ž๋ฃŒ 1) ํ”Œ๋Ÿฌ๊ทธ์ธ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„ ํด๋ผ์ด์–ธํŠธ ๋“œ๋ผ์ด๋ฒ„ (Java, Python, C/C++, Go, Spark, OGG ... ) โ†• ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ (Wire Protocol) ์ฟผ๋ฆฌ ์ฒ˜๋ฆฌ๊ธฐ, ์ƒค๋“œ ๊ด€๋ฆฌ์ž, ๋ณด์•ˆ ๊ด€๋ฆฌ์ž, ๋ ˆํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งค๋‹ˆ์ € ์Šคํ† ๋ฆฌ์ง€ ์—”.. 2022. 7. 15.