software engineering/๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์„ค๊ณ„

[DB] ์ธ๋ฑ์Šค ์„ ์ •

jjingle 2023. 10. 12. 13:37

* ์ธ๋ฑ์Šค ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ์ฟผ๋ฆฌ

1. ์ธ๋ฑ์Šค ์ปฌ๋Ÿผ์„ ์กฐ๊ฑด์ ˆ์—์„œ ๊ฐ€๊ณตํ•˜๋Š” ๊ฒฝ์šฐ

SELECT * FROM employees WHERE substr(email, 1, 2) = 'SV';

2. ๋ถ€์ •ํ˜• ๋น„๊ต๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ

SELECT * FROM employees WHERE id not between 150 and 200;

 

* ์ธ๋ฑ์Šค ๋Œ€์ƒ ์ปฌ๋Ÿผ ์„ ์ • ๊ธฐ์ค€ ์‹œ, ๊ณ ๋ คํ•  ๊ฒƒ

  1. ์ปฌ๋Ÿผ ๋ถ„ํฌ๋„ 
    • ์ „์ฒด ๋ ˆ์ฝ”๋“œ์—์„œ ์‹๋ณ„ ๊ฐ€๋Šฅํ•œ ์ˆ˜์— ๋Œ€ํ•œ ๋ฐฑ๋ถ„์œจ
    • ๋ถ„ํฌ๋„ ์ข‹์€ ์ปฌ๋Ÿผ ์„ ์ •์ด ๊ถŒ์žฅ๋˜์ง€๋งŒ, ๋ถ„ํฌ๋„ ๋งŒ์œผ๋กœ ํŒ๋‹จํ•˜๋Š” ๊ฒƒ์€ ์œ„ํ—˜ํ•จ
  2. ์ธ๋ฑ์Šค ๋ฐธ๋Ÿฐ์‹ฑ
    • ์ธ๋ฑ์Šค ์ปฌ๋Ÿผ์ด ์ž์ฃผ ์—…๋ฐ์ดํŠธ ๋˜๋ฉด, ์ธ๋ฑ์Šค ๋ฐธ๋Ÿฐ์‹ฑ์ด ๊นจ์ง
    • INSERT, DELETE, UPDATE ์‹œ ์ธ๋ฑ์Šค๋„ ํ•จ๊ป˜ ๋ณ€๊ฒฝ๋˜๋ฏ€๋กœ ๋น„์šฉ์ด ๋ฐœ์ƒ
    • ๊ฐฑ์‹ ์ด ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ์ปฌ๋Ÿผ์€ ์ธ๋ฑ์Šค ์ปฌ๋Ÿผ์œผ๋กœ ์„ ์ • ์‹œ ์‹ ์ค‘ํ•ด์•ผํ•จ
  3. ์ฟผ๋ฆฌ ์‹คํ–‰ ํšŸ์ˆ˜
    • ์กฐ๊ฑด์ ˆ์— ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋“  ์ปฌ๋Ÿผ์— ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์€ ์„ฑ๋Šฅ ์ €ํ•˜๋ฅผ ๊ฐ€์ ธ์˜ด
    • ํ•„์š”ํ•œ ๋งŒํผ์˜ ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑ
    • ์ฟผ๋ฆฌ ์‹คํ–‰ ๋นˆ๋„์ˆ˜๊ฐ€ ์ƒ๋Œ€์ ์œผ๋กœ ๋†’์€ ์ปฌ๋Ÿผ์— ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑ
  4. ์กฐ์ธ๋ณ„ ์ธ๋ฑ์Šค ํ•„์š”์„ฑ
    • Nested Loop Join  : ์˜จ๋ผ์ธ ์ฟผ๋ฆฌ์˜ 90%์ด์ƒ์„ ์ฐจ์ง€ํ•˜๋ฉฐ, ์กฐ์ธ์ ˆ์— ์ธ๋ฑ์Šค๊ฐ€ ๋ฐ˜๋“œ์‹œ ํ•„์š”
    • Sort Merge Join  : ์กฐ์ธ์ ˆ์— ์ธ๋ฑ์Šค๊ฐ€ ๋ฐ˜๋“œ์‹œ ์žˆ์„ ํ•„์š” X
    • Hash Join : ์กฐ์ธ์ ˆ์— ์ธ๋ฑ์Šค๊ฐ€ ๋ฐ˜๋“œ์‹œ ์žˆ์„ ํ•„์š” X
  5. ORDER BY์ ˆ ์ปฌ๋Ÿผ๋„ ์ธ๋ฑ์Šค ํ›„๋ณด๋กœ ์„ ์ • ๊ฐ€๋Šฅ

 

* ์ธ๋ฑ์Šค ํŒ๋‹จ ๊ธฐ์ค€

1. ์ธ๋ฑ์Šค ์ˆ˜

ํ…Œ์ด๋ธ” ์œ ํ˜• ์ธ๋ฑ์Šค ์ˆ˜
์ฝ”๋“œ์„ฑ ํ…Œ์ด๋ธ” - ํ•„์š”ํ•œ ๋งŒํผ๋งŒ ์ธ๋ฑ์Šค ์ƒ์„ฑ ๊ฐ€๋Šฅ
- ๋‚ด์šฉ ๋ณ€๋™์ด ์ ์€ ์กฐํšŒ์„ฑ ํ…Œ์ด๋ธ”
์ฒ˜๋ฆฌ์„ฑ ํ…Œ์ด๋ธ” - ์ฃผ๋ฌธ, ๊ณ„์•ฝ ํ…Œ์ด๋ธ” ๋“ฑ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์ด ๋งŽ์Œ
- ๊ฐ€๋Šฅํ•œ ์ธ๋ฑ์Šค ๊ฐœ์ˆ˜๋ฅผ ์ตœ์†Œํ™”
์ง‘๊ณ„์„ฑ ํ…Œ์ด๋ธ” - ํ•„์š”ํ•œ ๋งŒํผ ์ ์ •ํ•˜๊ฒŒ ์‚ฌ์šฉ
- ๋Œ€๋ถ€๋ถ„์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์•ผ๊ฐ„์— ๋ฐฐ์น˜์ž‘์—…์œผ๋กœ ์ด๋ฃจ์–ด์ง
๋กœ๊ทธ์„ฑ ํ…Œ์ด๋ธ” - ์ฟผ๋ฆฌ์— ์กฐํšŒ ๊ธฐ๋Šฅ์ด ๊ฑฐ์˜ ์—†์Œ

2. ๊ฒฐํ•ฉ์ธ๋ฑ์Šค ์ปฌ๋Ÿผ์˜ ์ˆ˜ : ์ •๋ ฌ๋น„์šฉ์„ ๊ณ ๋ คํ•ด์„œ ํŒ๋‹จ

3. ๊ฒฐํ•ฉ์ธ๋ฑ์Šค์˜ ์ปฌ๋Ÿผ ์ˆœ์„œ ๊ฒฐ์ • : ๋‹จ์ผ ์ธ๋ฑ์Šค๋Š” ์ปฌ๋Ÿผ์˜ ๋ถ„ํฌ๋„, ๊ฒฐํ•ฉ์ธ๋ฑ์Šค๋Š” ์ปฌ๋Ÿผ์˜ ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•œ ์š”์†Œ

  • ๊ณตํ†ต์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ํ•„์ˆ˜ ์กฐ๊ฑด์ ˆ ์ปฌ๋Ÿผ์„ ์šฐ์„ 
  • '=' ์กฐ๊ฑด์˜ ์ปฌ๋Ÿผ์„ ๋‹ค๋ฅธ ์—ฐ์‚ฐ์ž ์ปฌ๋Ÿผ๋ณด๋‹ค ์šฐ์„ 
  • ๋Œ€๋ถ„๋ฅ˜/์ค‘๋ถ„๋ฅ˜/์†Œ๋ถ„๋ฅ˜ ์ปฌ๋Ÿผ ์ˆœ์œผ๋กœ ๊ตฌ์„ฑ
  • ์œ„์น˜(์กฐ๊ฑด)์ •๋ณด ์ปฌ๋Ÿผ์€ ์ˆœ์„œ(์ •๋ ฌ)์ •๋ณด๋ณด๋‹ค ์šฐ์„