๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ •๋ฆฌ
ยท
๐Ÿ“ Computer Science/โœ Database
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ •๋ฆฌ 1. ํŒŒ์ผ ์‹œ์Šคํ…œ๊ณผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค 2020.04.27 - [๐Ÿ“ Computer Science/โœ Database] - ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(DataBase) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(DataBase) ํŒŒ์ผ ์‹œ์Šคํ…œ๊ณผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์กด์žฌํ•˜๊ธฐ ์ด์ „์—๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜์˜€๋‹ค. 1. ํŒŒ์ผ ์‹œ์Šคํ…œ ํŒŒ์ผ ์‹œ์Šคํ…œ์€ ํŒŒ์ผ์„ ์ด์šฉํ•˜์—ฌ ์ž๋ฃŒ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํŒŒ์ผ tech-interview.tistory.com 2. ์ธ๋ฑ์Šค 2020.04.27 - [๐Ÿ“ Computer Science/โœ Database] - ์ธ๋ฑ์Šค(Index) ์ธ๋ฑ์Šค(Index) ์ธ๋ฑ์Šค(Index) ๋ฐ์ดํ„ฐ ๋ ˆ์ฝ”๋“œ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ์Œ์œผ๋กœ ๊ตฌ์„ฑ๋˜๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์ด๋‹ค. ๋ฐ์ดํ„ฐ ํ…Œ์ด๋ธ”์„ Full Scan ํ•˜์ง€ ์•Š๊ณ  ์ธ๋ฑ์Šค๋ฅผ ์ด์šฉํ•ด..
ํŒŒํ‹ฐ์…”๋‹(Partitioning)๊ณผ ์ƒค๋”ฉ(Sharding)
ยท
๐Ÿ“ Computer Science/โœ Database
1. ํŒŒํ‹ฐ์…”๋‹(Partitioning) ์„œ๋น„์Šค์˜ ํฌ๊ธฐ๊ฐ€ ์ ์  ์ปค์ง€๊ณ  DB์— ์ €์žฅํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ทœ๋ชจ ๋˜ํ•œ ๋Œ€์šฉ๋Ÿ‰ํ™” ๋˜๋ฉด์„œ, ๊ธฐ์กด์— ์‚ฌ์šฉํ•˜๋Š” DB ์‹œ์Šคํ…œ์˜ ์šฉ๋Ÿ‰์˜ ํ•œ๊ณ„์™€ ์„ฑ๋Šฅ์˜ ์ €ํ•˜๋ฅผ ๊ฐ€์ ธ์˜ค๊ฒŒ ๋˜์—ˆ๋‹ค. ์ฆ‰, ํ•˜๋‚˜์˜ DBMS์— ๋„ˆ๋ฌด ํฐ table์ด ๋“ค์–ด๊ฐ€๋ฉด์„œ ์šฉ๋Ÿ‰๊ณผ ์„ฑ๋Šฅ ์ธก๋ฉด์—์„œ ๋งŽ์€ ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋˜์—ˆ๊ณ  ์ด๋Ÿฐ ์ด์Šˆ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ table์„ ํŒŒํ‹ฐ์…˜(partition)์ด๋ผ๋Š” ์ž‘์€ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด ๊ด€๋ฆฌํ•˜๋Š” ํŒŒํ‹ฐ์…”๋‹(Partitioning)์ด ๋‚˜ํƒ€๋‚˜๊ฒŒ ๋˜์—ˆ๋‹ค. ํŒŒํ‹ฐ์…”๋‹์ด๋ž€ ํฐ table์ด๋‚˜ index๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์‰ฌ์šด ํŒŒํ‹ฐ์…˜์ด๋ผ๋Š” ์ž‘์€ ๋‹จ์œ„๋กœ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋ถ„ํ• ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๋ฌผ๋ฆฌ์ ์ธ ๋ฐ์ดํ„ฐ ๋ถ„ํ• ์ด ์žˆ๋”๋ผ๋„ DB์— ์ ‘๊ทผํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ž…์žฅ์—์„œ๋Š” ์ด๋ฅผ ์ธ์‹ํ•˜์ง€ ๋ชปํ•œ๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ..
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ’€(Database Pool)
ยท
๐Ÿ“ Computer Science/โœ Database
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ’€(Database Pool) 1. ์ปค๋„ฅ์…˜ ํ’€(Connection Pool) ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์— ๋”ฐ๋ผ ๊ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์Šค๋ ˆ๋“œ์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Connection์ด ํ•„์š”ํ•˜๋‹ค. DB Connection Pool manager๊ฐ€ ์ผ์ •์˜ connection์„ ์—ฌ๋Ÿฌ ๊ฐœ ์ƒ์„ฑํ•ด ๋‘์–ด ์ €์žฅํ•ด ๋†“์€ ์บ์‹œ(๊ณต๊ฐ„) ์ด ๊ณต๊ฐ„์˜ connection์„ ํ•„์š”ํ•  ๋•Œ ๊บผ๋‚ด ์“ฐ๊ณ  ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ธฐ๋ฒ• 2. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ ๊ณผ์ • ์›น ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹คํ–‰๋˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์—ฐ๊ฒฐ๋œ Connection ๊ฐ์ฒด๋“ค์„ ๋ฏธ๋ฆฌ ์ƒ์„ฑํ•ด Pool์— ์ €์žฅํ•œ๋‹ค. ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ ์‹œ Pool์—์„œ Connection ๊ฐ์ฒด๋ฅผ ๊ฐ€์ ธ์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผํ•œ๋‹ค. ์š”์ฒญ ์ฒ˜๋ฆฌ๊ฐ€ ๋๋‚˜๋ฉด ์‚ฌ์šฉ๋œ Connection ๊ฐ์ฒด๋ฅผ ๋‹ค์‹œ Pool์— ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋‚จ์€ ..
RDBMS์™€ NoSQL
ยท
๐Ÿ“ Computer Science/โœ Database
1. RDBMS ๋ฐ์ดํ„ฐ๋Š” ์ •ํ•ด์ง„ ๋ฐ์ดํ„ฐ ์Šค์นด๋งˆ์— ๋”ฐ๋ผ ํ…Œ์ด๋ธ”์— ์ €์žฅ๋˜๊ณ  ๊ด€๊ณ„๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์— ๋ถ„์‚ฐ๋œ๋‹ค. ์Šค์นด๋งˆ๋ฅผ ์ค€์ˆ˜ํ•˜์ง€ ์•Š์€ ๋ ˆ์ฝ”๋“œ๋Š” ํ…Œ์ด๋ธ”์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์—†๋‹ค. ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ๊ด€๊ณ„๋ฅผ ์ด์šฉํ•œ๋‹ค. ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์—์„œ ์ค‘๋ณต ์—†์ด ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ๋งŒ์„ ๊ด€๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์—์„œ ๋ถ€์ •ํ™•ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ์œ„ํ—˜์ด ์—†์–ด์ง„๋‹ค. ACID ํŠน์ง•์„ ๊ฐ€์ง„๋‹ค. mySQL 1) ์žฅ์  ๋ช…ํ™•ํ•˜๊ฒŒ ์ •์˜๋œ ์Šคํ‚ค๋งˆ๋กœ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•œ๋‹ค. ๊ด€๊ณ„๋ฅผ ํ†ตํ•ด ๋ถ„์‚ฐ ์ €์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ค‘๋ณต ์—†์ด ํ•œ ๋ฒˆ๋งŒ ์ €์žฅํ•œ๋‹ค. 2) ๋‹จ์  ์œ ์—ฐํ•˜์ง€ ์•Š๋‹ค. ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ๋ฅผ ์‚ฌ์ „์— ๊ณ„ํšํ•˜๊ณ  ์•Œ๋ ค์•ผ ํ•ด์„œ ๋‚˜์ค‘์— ์ˆ˜์ •ํ•˜๊ธฐ ํž˜๋“ค๋‹ค. ๊ด€๊ณ„๋ฅผ ๋งบ๊ณ  ์žˆ์–ด์„œ ์กฐ์ธ๋ฌธ์ด ๋งŽ์€ ๋ณต์žกํ•œ ์ฟผ๋ฆฌ๊ฐ€ ๋งŒ๋“ค์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค. 3) ์–ธ์ œ ์‚ฌ์šฉ? ๊ด€๊ณ„๋ฅผ ๋งบ๊ณ  ์žˆ๋Š” ๋ฐ..
SQL SELECT
ยท
๐Ÿ“ Computer Science/โœ Database
SELECT [PREDICATE] [ํ…Œ์ด๋ธ”๋ช….]์†์„ฑ๋ช… [AS ๋ณ„์นญ], ... FROM ํ…Œ์ด๋ธ”๋ช… [AS ๋ณ„์นญ], ... WHERE ์กฐ๊ฑด ORDER BY ์†์„ฑ๋ช… [ASC | DESC], ... GROUP BY ์†์„ฑ๋ช…, ... HAVING ์กฐ๊ฑด; 1. SELECT ์ ˆ ์กฐ๊ฑด์— ๋งž๋Š” ํŠœํ”Œ์„ ๊ฒ€์ƒ‰ํ•œ๋‹ค. PREDICATE: ๋ถˆ๋Ÿฌ์˜ฌ ํŠœํ”Œ ์ˆ˜๋ฅผ ์ œํ•œํ•  ๋ช…๋ น์–ด๋ฅผ ๊ธฐ์ˆ ํ•œ๋‹ค. DISTINCT: ์ค‘๋ณต๋œ ํŠœํ”Œ์ด ์žˆ์œผ๋ฉด ๊ทธ์ค‘ ์ฒซ ๋ฒˆ์งธ ํ•œ ๊ฐœ๋งŒ ๊ฒ€์ƒ‰ํ•œ๋‹ค DISTINCT: ์ค‘๋ณต๋œ ํŠœํ”Œ์„ ์ œ๊ฑฐํ•˜๊ณ  ํ•œ ๊ฐœ๋งŒ ๊ฒ€์ƒ‰ํ•˜์ง€๋งŒ ์„ ํƒ๋œ ์†์„ฑ์˜ ๊ฐ’์ด ์•„๋‹Œ ํŠœํ”Œ ์ „์ฒด๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•œ๋‹ค. ๊ธฐ๋ณธ ํ…Œ์ด๋ธ”์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ชจ๋“  ์†์„ฑ์„ ์ง€์ •ํ•  ๋•Œ๋Š” '*'๋ฅผ ๊ธฐ์ˆ ํ•œ๋‹ค. 2. ORDER BY ์ ˆ ํŠน์ • ์†์„ฑ์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•˜์—ฌ ๊ฒ€์ƒ‰ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. [ASC | DESC]:..
SQL
ยท
๐Ÿ“ Computer Science/โœ Database
SQL ๊ตญ์ œ ํ‘œ์ค€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์–ธ์–ด์ด๋ฉฐ ์งˆ์˜ ๊ธฐ๋Šฅ๊ณผ ์ œ์–ด ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ ๊ฐ–์ถ”๊ณ  ์žˆ๋‹ค. 1. DDL(Data Define Language) ๋ฐ์ดํ„ฐ ์ •์˜์–ด๋กœ SCHEMA, DOMAIN, TABLE, VIEW, INDEX๋ฅผ ์ •์˜ํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ, ์‚ญ์ œํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. 1) CREATE SCHEMA, DOMAIN, TABLE, VIEW, INDEX๋ฅผ ์ •์˜ํ•œ๋‹ค. 2) ALTER TABLE์— ๋Œ€ํ•œ ์ •์˜๋ฅผ ๋ณ€๊ฒฝํ•œ๋‹ค. ALTER TABLE ํ…Œ์ด๋ธ”๋ช… ADD ์†์„ฑ๋ช… ๋ฐ์ดํ„ฐํƒ€์ž… [DEFAULT '๊ธฐ๋ณธ๊ฐ’']; // ์ƒˆ๋กœ์šด ์†์„ฑ ์ถ”๊ฐ€ ALTER TABLE ํ…Œ์ด๋ธ”๋ช… ALTER ์†์„ฑ๋ช… [SET DEFAULT '๊ธฐ๋ณธ๊ฐ’']; // ์†์„ฑ์˜ ๊ธฐ๋ณธ๊ฐ’ ๋ณ€๊ฒฝ ALTER TABLE ํ…Œ์ด๋ธ”๋ช… DROP ์†์„ฑ๋ช… [CASCADE]; // ์†์„ฑ ์ œ๊ฑฐ 3) DR..