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

๐Ÿข DB/๐Ÿ”‘ RDB3

์ธ๋ฑ์Šค์™€ ๊ด€๋ จ๋œ ๋ช‡ ๊ฐ€์ง€ SQL ํŠœ๋‹ ์˜ˆ์ œ (๊ฒฐํ•ฉ ์ธ๋ฑ์Šค, ์ธ๋ฑ์Šค ์‚ฌ์šฉํ•  ๋•Œ ๋А๋ฆฐ ๊ฒฝ์šฐ, ์ธ๋ฑ์Šค๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ ๋“ฑ) ์ด ๊ธ€์€ ์ฑ… ์—…๋ฌด์— ๋ฐ”๋กœ ์“ฐ๋Š” SQL ํŠœ๋‹ 4,5 ์žฅ Github repo ์˜ˆ์ œ, ํ•˜๋‹จ reference ์ฐธ๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ €์ž‘๊ถŒ ๋ฌธ์ œ ๋ฐœ์ƒ ์‹œ ๊ฒŒ์‹œ๋ฌผ์ด ๋น„๊ณต๊ฐœ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž˜๋ชป๋œ ๋‚ด์šฉ์ด ์žˆ๋‹ค๋ฉด ํŽธํ•˜๊ฒŒ ๋ง์”€ํ•ด์ฃผ์„ธ์š”. ์ด์ „ ๊ธ€ MySQL ์‹คํ–‰ ๊ณ„ํš๊ณผ ๊ฒฐ๊ณผ ์ปฌ๋Ÿผ ์„ค๋ช… (MySQL EXPLAIN Output Format)์—์„œ MySQL ์‹คํ–‰ ๊ณ„ํš๊ณผ ๊ฒฐ๊ณผ๋ฅผ ์•Œ์•„๋ณด์•˜๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„  ์‹คํ–‰ ๊ณ„ํš์„ ํ™œ์šฉํ•˜์—ฌ ์ธ๋ฑ์Šค์™€ ๊ด€๋ จ๋œ ๋ช‡ ๊ฐ€์ง€ SQL ํŠœ๋‹ ์˜ˆ์ œ๋ฅผ ์‚ดํŽด๋ณด๊ณ ์ž ํ•œ๋‹ค. Case 1 : ๊ฒฐํ•ฉ ์ธ๋ฑ์Šค ์ˆœ์„œ ๊ณ ๋ ค ์—†์ด ์‚ฌ์šฉํ•˜๋Š” SQL๋ฌธ ์‚ฌ์› ํ…Œ์ด๋ธ”๊ณผ index ๊ตฌ์„ฑ์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ์‚ฌ์› ํ…Œ์ด๋ธ”์—์„œ ์„ฑ(Family Name)๊ณผ ์„ฑ๋ณ„(Sex) ์ˆœ์„œ๋กœ ๊ทธ๋ฃจํ•‘ํ•˜์—ฌ ๋ช‡ ๊ฑด์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š”์ง€ ๊ตฌ๋ถ„ํ•˜๊ณ  ์‹ถ๋‹ค. ๋‹ค์‹œ ๋งํ•ด ์„ฑ์ด ๊น€์”จ์ธ .. 2022. 5. 19.
MySQL ์‹คํ–‰ ๊ณ„ํš๊ณผ ๊ฒฐ๊ณผ ์ปฌ๋Ÿผ ์„ค๋ช… (MySQL EXPLAIN Output Format) ์ด ๊ธ€์€ ์ฑ… Real Mysql 8.0 10์žฅ, ์—…๋ฌด์— ๋ฐ”๋กœ ์“ฐ๋Š” SQL ํŠœ๋‹ 3์žฅ๊ณผ Github repo์˜ ์˜ˆ์ œ, ํ•˜๋‹จ Reference ์ฐธ๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ €์ž‘๊ถŒ ๋ฌธ์ œ ๋ฐœ์ƒ ์‹œ ๊ฒŒ์‹œ๋ฌผ์ด ๋น„๊ณต๊ฐœ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž˜๋ชป๋œ ๋‚ด์šฉ์ด ์žˆ๋‹ค๋ฉด ํŽธํ•˜๊ฒŒ ๋ง์”€ํ•ด์ฃผ์„ธ์š”. ์‹คํ–‰ ๊ณ„ํš(explain)์ด๋ž€? ์‹คํ–‰ ๊ณ„ํš(explain)์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ MySQL ์„œ๋ฒ„์— ์š”์ฒญํ•œ SQL๋ฌธ์„ ์–ด๋–ป๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ ๊ฒƒ์ธ์ง€์— ๊ด€ํ•œ ๊ณ„ํš, ๊ฒฝ๋กœ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์‹คํ–‰ ๊ณ„ํš ์ •๋ณด๋ฅผ ํ™œ์šฉํ•˜์—ฌ SQL ํŠœ๋‹์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹จ, ์‹ค์ œ ์ˆ˜ํ–‰ ์ˆœ์„œ๊ฐ€ ์•„๋‹Œ MySQL์˜ ํ†ต๊ณ„ ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ณ„์‚ฐํ•œ ์˜ˆ์ธก๊ฐ’์ด๋‹ค. ์‹ค์ œ๊ฐ’์œผ๋กœ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ ค๋ฉด ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ด์•ผํ•œ๋‹ค. ์‹คํ–‰ ๊ณ„ํš ์˜ˆ์ œ ์„ค๋ช… ์•„๋ž˜์—์„œ ์‚ดํŽด๋ณผ ์˜ˆ์ œ๋Š” ์ฑ… ์—…๋ฌด์— ๋ฐ”๋กœ ์“ฐ๋Š” SQL ํŠœ๋‹ 3์žฅ์˜ ์ €์žฅ์†Œ๋ฅผ ์ฐธ๊ณ ํ•˜.. 2022. 5. 14.
MySQL Server ์•„ํ‚คํ…์ฒ˜์™€ ์Šค๋ ˆ๋”ฉ ์ด ๊ธ€์€ ์ฑ… Real Mysql 8.0 4์žฅ, ์—…๋ฌด์— ๋ฐ”๋กœ ์“ฐ๋Š” SQL ํŠœ๋‹ 2์žฅ๊ณผ ํ•˜๋‹จ Reference ์ฐธ๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ž˜๋ชป๋œ ๋‚ด์šฉ์ด ์žˆ๋‹ค๋ฉด ํŽธํ•˜๊ฒŒ ๋ง์”€ํ•ด์ฃผ์„ธ์š” ๐Ÿ™๐Ÿป ๊ฐ„๋‹จํ•˜๊ฒŒ MySQL Server์˜ ์•„ํ‚คํ…์ฒ˜์™€ ์Šค๋ ˆ๋”ฉ์„ ์‚ดํŽด๋ณด๊ณ ์ž ํ•œ๋‹ค. MySQL Server ์•„ํ‚คํ…์ฒ˜ MySQL ์„œ๋ฒ„ ์•„ํ‚คํ…์ฒ˜๋Š” ์–ด๋–ป๊ฒŒ ๋˜์–ด ์žˆ์„๊นŒ? ๋‘ ๊ฐ€์ง€ ๊ด€์ (SQL ์ฟผ๋ฆฌ ์‹คํ–‰ํ–ˆ์„ ๋•Œ, MySQL ์„œ๋ฒ„ ๊ตฌ์„ฑ์š”์†Œ)์œผ๋กœ ์‚ดํŽด๋ณด์ž. 1. SQL ์ฟผ๋ฆฌ ์‹คํ–‰ ๊ตฌ์กฐ์˜ ์•„ํ‚คํ…์ฒ˜ ํด๋ผ์ด์–ธํŠธ๊ฐ€ SELECT * FROM ํ•™์ƒ; ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. ํ•ด๋‹น SQL ๋ฌธ์€ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ตฌ์กฐ๋กœ ์‹คํ–‰๋œ๋‹ค. ํŒŒ์„œ(parser) : ์‚ฌ์šฉ์ž ์š”์ฒญํ•œ SQL๋ฅผ ์ชผ๊ฐœ ํ† ํฐ์œผ๋กœ ๋ถ„๋ฆฌํ•˜๊ณ  ํŠธ๋ฆฌ ํ˜•ํƒœ์˜ ๊ตฌ์กฐ๋กœ ๋งŒ๋“ ๋‹ค. ์ด๋•Œ ๊ธฐ๋ณธ ๋ฌธ๋ฒ• ์˜ค๋ฅ˜๋ฅผ ํ™•์ธํ•œ๋‹ค ์ „์ฒ˜๋ฆฌ๊ธฐ(prepr.. 2022. 5. 12.