๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก์ „์ฒด ๊ธ€ (39)

โœ๐Ÿป๊ธฐ๋กํ•˜๋Š” ๋ธ”๋กœ๊ทธ

Transaction & Lock

MySQL ๋™์‹œ์„ฑ(์—ฌ๋Ÿฌ ์š”์ฒญ์ด ํ•˜๋‚˜์˜ ์ ‘๊ทผํ•˜๋Š” ๊ฒฝ์šฐ)์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์š”์†Œ๋“ค์˜ ์šฉ์–ด๋ฅผ ๋จผ์ € ์ •๋ฆฌํ•˜์ž. Transaction ๋ฐ์ดํ„ฐ์˜ ์ •ํ•ฉ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋Šฅ db read, write์ž‘์—…์„ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋ฌถ๋Š” ๋ฐฉ์‹ ํŠธ๋žœ์žญ์…˜์œผ๋กœ ๋ฌถ์€ ์ž‘์—…์ด ์„ฑ๊ณตํ•˜๋ฉด commit, ์‹คํŒจ ์‹œ rollback์„ ํ•˜๋ฏ€๋กœ ๋ถ€๋ถ„์„ฑ๊ณต, ๋ถ€๋ถ„ ์‹คํŒจ(Partial Update)์˜ ์œ„ํ—˜์ด ์—†์Œ Lock ๋™์‹œ์„ฑ์„ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋Šฅ ์—ฌ๋Ÿฌ ์ปค๋„ฅ์…˜์—์„œ ๋™์‹œ์— ๋™์ผํ•œ ์ž์›์„ ์š”์ฒญํ•  ๊ฒฝ์šฐ ์ˆœ์„œ๋Œ€๋กœ ํ•˜๋‚˜์˜ ์ปค๋„ฅ์…˜๋งŒ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ์—ญํ•  Isolation level ๋™์‹œ์— ํ•˜๋‚˜ ๋˜๋Š” ์—ฌ๋Ÿฌ ํŠธ๋žœ์žญ์…˜์ด ์ง„ํ–‰๋  ๋•Œ, ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์—์„œ ๋ณ€๊ฒฝ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” ๊ธฐ์ค€ ์ผ๋ฐ˜์ ์ธ ์„œ๋น„์Šค์—์„œ๋Š” Read Commited, Repeatable Read๋ฅผ ์‚ฌ์šฉ My..

DB/RDBMS 2022. 12. 24. 23:26
MySQL - InnoDB & MyISAM ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„ ์•„ํ‚คํ…์ฒ˜

MySQL 5.5์ดํ›„๋ถ€ํ„ฐ InnoDB์—”์ง„์ด ๊ธฐ๋ณธ์—”์ง„์œผ๋กœ ์ฑ„ํƒ MySQL 5.5๊นŒ์ง€ MySQL ์‹œ์Šคํ…œ ํ…Œ์ด๋ธ”์€ MyISAM MySQL 8.0์ดํ›„๋ถ€ํ„ฐ๋Š” ๋ชจ๋‘ InnoDB ์—”์ง„ ์‚ฌ์šฉ, MyISAM์—์„œ๋งŒ ์ œ๊ณตํ•˜๋˜ ์ „๋ฌธ๊ฒ€์ƒ‰, ์ขŒํ‘œ๊ฒ€์ƒ‰๋„ InnoDB์—์„œ ์ œ๊ณต InnoDB ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„ ์•„ํ‚คํ…์ฒ˜ ๋ ˆ์ฝ”๋“œ๋ฅผ PK ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•˜์—ฌ ๋””์Šคํฌ์— ๋ฐ์ดํ„ฐ ์ €์žฅ PK๋ฅผ ํ†ตํ•ด์„œ๋งŒ ๋ ˆ์ฝ”๋“œ ์ ‘๊ทผ ๊ฐ€๋Šฅ PK์ธ๋ฑ์Šค ์ž๋™ ์ƒ์„ฑ PK๋ฅผ ํ†ตํ•œ ๋ฒ”์œ„ ๊ฒ€์ƒ‰์ด ๋น ๋ฆ„ InnoDB๋Š” PK๋ฅผ ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๋‚ด๋ถ€์ ์œผ๋กœ PK๋ฅผ ์ž๋™ ์ƒ์„ฑํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ๋ง ๋‹จ, ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋œ PK๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€ MVCC(Multi Version Concurrency Control) Undo์˜์—ญ์„ ์ด์šฉํ•˜์—ฌ ํ•˜๋‚˜์˜ ๋ ˆ์ฝ”๋“œ์— ๋Œ€ํ•ด ๋‹ค์–‘ํ•œ ๋ฒ„์ „์ด ๊ด€๋ฆฌ๋จ ๋ ˆ์ฝ”๋“œ ๋‹จ์œ„์˜ ํŠธ๋žœ์žญ..

DB/RDBMS 2022. 12. 5. 21:32
MySQL - ์•„ํ‚คํ…์ฒ˜

MySQL ์•„ํ‚คํ…์ฒ˜ ๊ฐœ์š” MySQL ์ ‘์† ํด๋ผ์ด์–ธํŠธ Mysql์€ ๋Œ€๋ถ€๋ถ„ ์–ธ์–ด์— ๋Œ€ํ•ด ์ ‘์† API ์ œ๊ณต + Shell MySQL ์„œ๋ฒ„ = MySQL ์—”์ง„ + ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„ 1. MySQL ์„œ๋ฒ„ ์Šค๋ ˆ๋“œ ๊ธฐ๋ฐ˜ ์ž‘๋™ = Foreground Thread + BackGround Thread Foreground Thread(ํด๋ผ์ด์–ธํŠธ ์Šค๋ ˆ๋“œ) MySQL ์„œ๋ฒ„์— ์ ‘์†๋œ ํด๋ผ์ด์–ธํŠธ์˜ ์ˆ˜๋งŒํผ ์กด์žฌ Foreground Thread๋Š” ๋ฐ์ดํ„ฐ ๋ฒ„ํผ๋‚˜ ์บ์‹œ๋กœ๋ถ€ํ„ฐ ๊ฐ€์ ธ BackGround Thread 2. MySQL ์—”์ง„ ํด๋ผ์ด์–ธํŠธ ์ ‘์†, SQL ์š”์ฒญ, ์ฟผ๋ฆฌ ๋ถ„์„ ๋ฐ ์ตœ์ ํ™” ์—ญํ•  ์•„๋ž˜ ๋ชจ๋“ˆ๋กœ ๊ตฌ์„ฑ. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ฐ ์—”์ง„์˜ ์•„ํ‚คํ…์ฒ˜์—์„œ ์„ค๋ช… ์ฟผ๋ฆฌ ํŒŒ์„œ ์ „์ฒ˜๋ฆฌ๊ธฐ ์˜ตํ„ฐ๋งˆ์ด์ € ์‹คํ–‰ ์—”์ง„ 3. ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„ ๋ฐ์ดํ„ฐ ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅ ๋ฐ ์ฝ..

DB 2022. 11. 29. 00:36
ElasticSearch ๊ฐ„๋‹จ ์ •๋ฆฌ

ํŠน์ง• ๋„ํ๋จผํŠธ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๋Š” ๊ธฐ๋ณธ ๋‹จ์œ„์ด๋ฉฐ JSONํ˜•ํƒœ 7.x ๋ฒ„์ „์ดํ›„์—๋Š” ํƒ€์ž…์ด ์‚ญ์ œ๋˜๋ฉด์„œ RDMS์™€ ๋น„๊ตํ•  ์‹œ ์•„๋ž˜์™€ ๊ฐ™์ด ์ดํ•ดํ•˜๋ฉด ์ข‹๋‹ค. table index rdbms es table index record document column field schema mapping ๋ถ„์„๊ธฐ(Analyzer)์— ์˜ํ•ด ๋ถ„์„ ํ›„ ํ† ํฐ์œผ๋กœ ๋ถ„๋ฆฌ ๊ฒ€์ƒ‰์–ด ์š”์ฒญ์ด ์˜ค๋ฉด ๋ถ„์„๊ธฐ๋ฅผ ํ†ตํ•ด ๋ถ„์„๋œ ํ† ํฐ๊ณผ ์ผ์น˜์—ฌ๋ถ€ ํŒ๋‹จ ํ›„ ๊ฒฐ๊ณผ์— score์„ ๋งค๊น€ ๋‹ค์–‘ํ•œ ๊ฒ€์ƒ‰๊ธฐ๋Šฅ์„ ์œ„ํ•ด Query DSL์ด๋ž€ ์ฟผ๋ฆฌ ๋ฌธ๋ฒ• ์กด์žฌ ์ธ๋ฑ์Šค ๋„ํ๋จผํŠธ๋ฅผ ์ €์žฅํ•˜๋Š” ๋…ผ๋ฆฌ์  ๋‹จ์œ„ ๋‹ค์ด๋‚˜ ๋งฅ ๋งคํ•‘ ์ธ๋ฑ์Šค ์ƒ์„ฑ ํ›„ ๋งคํ•‘์„ ์„ค์ •ํ•˜์ง€ ์•Š๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์ž๋งˆ์ž ์—˜๋ผ์Šคํ‹ฑ์„œ์น˜๊ฐ€ ์ž๋™์œผ๋กœ ์ž…๋ ฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ณ  ์ž๋™์œผ๋กœ ๊ฒฐ์ • ๊ทธ์˜ ๋ฐ˜๋Œ€๋Š” ๋ช…์‹œ์  ๋งคํ•‘ index ๊ด€๋ จ ์š”์ฒญ ๋ชจ๋“ ..

ELK Stack 2022. 6. 29. 00:34