MySQL ์‹คํ–‰ ๊ณ„ํš ํ†บ์•„๋ณด๊ธฐ

MySQL ์‹คํ–‰ ๊ณ„ํš ๋ถ„์„๐Ÿ’ก ์‹คํ–‰ ๊ณ„ํš์—์„œ ํ‘œ์‹œ๋˜๋Š” ๊ฐ ์ปฌ๋Ÿผ์ด ์–ด๋–ค ๊ฒƒ์„ ์˜๋ฏธํ•˜๋Š”์ง€ ์•Œ์•„๋ณด์ž๋ฉ”๋‰ด์–ผํ•œ ์ž‘์—…์ด๋‚˜ ๊ฐ€๋” ์ฟผ๋ฆฌ ์„ฑ๋Šฅ์„ ํ™•์ธํ•˜๊ณ  ์‹ถ์„ ๋•Œ EXPLAIN ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด MySQL ์‹คํ–‰ ๊ณ„ํš์„ ์‚ดํŽด๋ณด๊ฒŒ ๋˜๋Š”๋ฐ, ๊ฐ ์นผ๋Ÿผ์˜ ์˜๋ฏธ์— ๋Œ€ํ•ด์„œ๋Š” ๋ช…ํ™•ํ•˜๊ฒŒ ์ •๋ฆฌํ•˜๊ฑฐ๋‚˜ ์•Œ์•„๋ณธ ๊ฒฝํ—˜์ด ์—†๋Š” ๊ฒƒ ๊ฐ™์•„์„œ ์ด๋ฒˆ ๊ธฐํšŒ์— ์ด๋ฅผ ์ •๋ฆฌํ•˜๊ณ  ์ƒ๊ธฐํ•ฉ๋‹ˆ๋‹ค.๊ฐ ์นผ๋Ÿผ์˜ ๊ตฌ์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.id, select_type, table, partitions, type, possible_keys, key, key_len, ref, rows, filtered, Extra id ์นผ๋Ÿผ๐Ÿ’ก ID ์ปฌ๋Ÿผ์€ ๋‹จ์ˆœํžˆ SELECT ์ฟผ๋ฆฌ ์ˆ˜๋ฅผ ์˜๋ฏธํ•˜๊ณ  ํ•ด๋‹น SELECT ์ฟผ๋ฆฌ๋ฅผ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ ์šฉ๋„๋กœ ์‚ฌ์šฉ๋จ.SELECT ์ฟผ๋ฆฌ ์ˆ˜๋ฅผ ์˜๋ฏธํ•˜๋ฏ€๋กœ ๊ฐ™์€ ID๊ฐ€ ์—ฌ๋Ÿฌ..

BackEnd 2024. 4. 28. 20:31
ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€(isolation level)์ด๋ž€?

ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€(isolation level)์— ๋Œ€ํ•ด์„œ ์ •ํ™•ํ•˜๊ฒŒ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง์„ ์ •ํ™•ํ•˜๊ฒŒ ์ œ์–ดํ•˜๋Š” ๊ฒƒ์— ์žˆ์–ด์„œ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์ด ๊ตฌ์ฒด์ ์œผ๋กœ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์ •ํ™•ํ•˜๊ฒŒ ๋ชจ๋ฅด๊ณ  ์žˆ์—ˆ๋˜ ์‚ฌ์‹ค์„ ๋ฐœ๊ฒฌํ•ด์„œ ์žฌํ•™์Šต์„ ์œ„ํ•ด ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธ€์€ MySQL ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์€ ํฌ๊ฒŒ ๋‹ค์Œ๊ณผ ๊ฐ™์ด 4๊ฐ€์ง€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜๋‰˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. READ UNCOMMITTED READ COMMITTED REPEATABLE READ SERIALIZABLE 1๋ฒˆ์—์„œ 4๋ฒˆ์œผ๋กœ ๊ฐˆ์ˆ˜๋ก ํŠธ๋žœ์žญ์…˜ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์ด ๋†’์•„์ง€๋ฉฐ, ๋™์‹œ ์ฒ˜๋ฆฌ ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง€๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ณดํ†ต SERIALIZABLE ์ •๋„๊ฐ€ ์•„๋‹ˆ๋ฉด ํฌ๊ฒŒ ์„ฑ๋Šฅ์˜ ๊ฐœ์„ ์ด๋‚˜ ์ €ํ•˜๋Š” ๋ฐœ์ƒํ•˜์ง€ ..

BackEnd 2024. 3. 3. 20:13
์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ MySQL ์ •๋ฆฌ #2 ์œ ์šฉํ•œ ํ‚ค์›Œ๋“œ + ์‹ค์ „ ๋ฌธ์ œ ํ’€์ด

#2 ์—์„œ๋Š” ์œ ์šฉํ•œ ํ‚ค์›Œ๋“œ๋“ค์„ ์ •๋ฆฌํ•˜๋ฉด์„œ ๋ฌธ์ œ๋„ ๋ช‡ ๊ฐœ ์ •๋ฆฌํ•  ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค. - ์ง‘๊ณ„ํ•จ์ˆ˜(SUM, MAX, MIN, COUNT, AVG) ์ง‘๊ณ„ํ•จ์ˆ˜๋Š” ์ตœ๋Œ“๊ฐ’ ํ˜น์€ ์ตœ์†Ÿ๊ฐ’ ๊ตฌํ•˜๊ธฐ, ๊ฐœ์ˆ˜ ์„ธ๊ธฐ ๊ทธ๋ฆฌ๊ณ  ํ‰๊ท  ๊ตฌํ•˜๊ธฐ ๋“ฑ์— ์ด์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. โ—#1์—์„œ ์ •๋ฆฌํ•œ GROUP BY๋Š” ์ง‘๊ณ„ํ•จ์ˆ˜์™€ ์‚ฌ์šฉํ•˜๋ฉด ์œ ์šฉํ•˜๋‹ˆ ๊ผญ ์•Œ์•„๋‘ก์‹œ๋‹ค. ์ด์— ๊ด€๋ จ๋œ ์˜ˆ์ œ๋Š” ๋’ค์— GROUP BY ๋ฌธ์ œ์™€ ํ•จ๊ป˜ ์•Œ์•„๋ด…๋‹ˆ๋‹ค. - ์ค‘๋ณต ์ œ๊ฑฐ ํ•˜๊ธฐ(DISTINCT) DISINCT ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. โ—์ถ”๊ฐ€๋กœ ์ง‘๊ณ„ํ•จ์ˆ˜์™€ ์กฐํ•ฉํ•˜์—ฌ COUNT(DISTINCT NAME) ์ด๋Ÿฐ ๋ฐฉ์‹๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. NAME์˜ ์ค‘๋ณต๊ฐ’์„ ๋ฏธ๋ฆฌ ์ œ๊ฑฐํ•˜๊ณ  COUNTํ•˜๋Š” ๊ฒƒ์ด์ฃ . -- NAME SELECT ์ค‘๋ณต ์ œ๊ฑฐ SELECT DISTINCT NAME FROM M..

PS 2021. 3. 19. 22:03