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

๋ชฉ๋ก๐Ÿ›ข๏ธDB/MySQL (27)

ruriruriya

[DB] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค MySQL - ๊ฐ€์žฅ ํšจ์œจ์ ์œผ๋กœ ์ธ๋ฑ์Šค ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•

์ „ ํฌ์ŠคํŒ…์—์„œ ์ธ๋ฑ์Šค๊ฐ€ ์–ด๋–ค ๊ฒƒ์ธ์ง€ ๋Œ€ํ•ด ์•Œ์•„๋ดค๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ• ๋‹นํ•˜๋ฉฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ธ๋ฑ์Šค ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž. ์•„๋ž˜๋Š” ์ธ๋ฑ์Šค์— ๋Œ€ํ•œ ํฌ์ŠคํŒ…์ด๋‹ค. https://ruriruriya.tistory.com/193 [DB] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค MySQL - ํ’€ ์Šค์บ”(Full Scan)๊ณผ ์ธ๋ฑ์Šค(Index) ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ์˜ ํ’€ ์Šค์บ”(Full Scan)๊ณผ ์ธ๋ฑ์Šค(Index)์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. ํ’€ ์Šค์บ”(Full Scan) ํ’€ ์Šค์บ”์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ฝ๋Š” ๋ฐฉ์‹์„ ๋งํ•œ๋‹ค. ํ’€ ์Šค์บ”์€ ๋ณดํ†ต ํŠน์ • ruriruriya.tistory.com API ๊ฐœ๋ฐœ์—์„œ ์ฟผ๋ฆฌ๋ฌธ ์ฐพ๋Š” ๋ฐฉ๋ฒ•(VS CODE) VS CODE์—๋Š” ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์ด ์žˆ์–ด์„œ ์ฝ”๋“œ๋ฅผ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค. ์™ผ์ชฝ์— ๋‹๋ณด๊ธฐ ๋ฒ„..

๐Ÿ›ข๏ธDB/MySQL 2024. 2. 18. 20:46
[DB] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค MySQL - ํ’€ ์Šค์บ”(Full Scan)๊ณผ ์ธ๋ฑ์Šค(Index)

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ์˜ ํ’€ ์Šค์บ”(Full Scan)๊ณผ ์ธ๋ฑ์Šค(Index)์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. ํ’€ ์Šค์บ”(Full Scan) ํ’€ ์Šค์บ”์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ฝ๋Š” ๋ฐฉ์‹์„ ๋งํ•œ๋‹ค. ํ’€ ์Šค์บ”์€ ๋ณดํ†ต ํŠน์ • ์กฐ๊ฑด์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์„ ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค. ํ•˜์ง€๋งŒ ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ธฐ ๋•Œ๋ฌธ์— ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋Š” ์„ฑ๋Šฅ์ด ์ €ํ•˜๋  ์ˆ˜ ์žˆ๋‹ค. ํŠนํžˆ, ์ธ๋ฑ์Šค๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” ํ’€ ์Šค์บ”์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•œ๋‹ค. ์ธ๋ฑ์Šค(Index) ์ธ๋ฑ์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋น ๋ฅด๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์ด๋‹ค. ์ธ๋ฑ์Šค๋ฅผ ํ†ตํ•ด ํŠน์ • ์ปฌ๋Ÿผ์˜ ๊ฐ’์„ ๋น ๋ฅด๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค. ์ธ๋ฑ์Šค๋Š” ๋ณดํ†ต B-tree๋‚˜ Hash ๋“ฑ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„๋œ๋‹ค. ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ํŠน์ • ์กฐ๊ฑด์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ์„ ์ฝ์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ’€..

๐Ÿ›ข๏ธDB/MySQL 2024. 2. 17. 23:42
[DB] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค MySQL - ํ…Œ์ด๋ธ”์˜ 1๊ฐœ ์ปฌ๋Ÿผ unique ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•

SQL ๋ฌธ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋‹ค๋ฃจ๋‹ค ๋ณด๋ฉด ๋‹ค์ค‘ ์ปฌ๋Ÿผ์ด ์•„๋‹Œ 1๊ฐœ์˜ ์ปฌ๋Ÿผ์— ๋Œ€ํ•ด์„œ UNIQUE ์„ค์ •์„ ํ•ด์•ผํ•  ๋•Œ๊ฐ€ ์˜ค๋Š”๋ฐ MySQL workbench์—์„œ๋Š” ์†์‰ฝ๊ฒŒ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. 1. UNIQUE ์„ค์ • ํ…Œ์ด๋ธ” ์„ค์ •์—์„œ Columns ์˜ ํ•ด๋‹น ์ปฌ๋Ÿผ์— UQ ์ฒดํฌ๋ฐ•์Šค๋ฅผ ์„ ํƒํ•˜๊ณ  Apply. 2. ์„ค์ • ํ™•์ธ๋ฐฉ๋ฒ• SQL insert ๋ฌธ์œผ๋กœ ํ•ด๋‹น ์ปฌ๋Ÿผ ๊ฐ’ ์ถ”๊ฐ€ํ•ด์„œ ํ™•์ธํ•˜๊ธฐ. ddd@naver.com ๋ผ๋Š” ์ด๋ฉ”์ผ์„ ๋‘๋ฒˆ ์ถ”๊ฐ€ํ•˜๋ฉด ๋‘๋ฒˆ ์งธ์—๋Š” ์—๋Ÿฌ์ฝ”๋“œ Error Code : 1062๊ฐ€ ๋œฌ๋‹ค. Duplicate entry ์ฆ‰, ์ค‘๋ณต๋œ ํ•ญ๋ชฉ์œผ๋กœ Unique ์„ค์ •์œผ๋กœ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์†Œ๋ฆฌ์ด๋‹ค. insert into user (email) values ('ddd@naver.com'); ์ด๋ ‡๊ฒŒ MySQL workbench..

๐Ÿ›ข๏ธDB/MySQL 2023. 12. 5. 09:18
[DB] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค MySQL - foreign key์˜ on delete cascade ์„ค์ •๋ฐฉ๋ฒ•๊ณผ ๋™์ž‘ ๋ฐฉ๋ฒ•

MySQL์—์„œ ON DELETE CASCADE๋Š” ์™ธ๋ž˜ ํ‚ค(foreign key) ์ œ์•ฝ ์กฐ๊ฑด์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ์ด ์„ค์ •์„ ์‚ฌ์šฉํ•˜๋ฉด ์ฐธ์กฐํ•˜๋Š” ํ…Œ์ด๋ธ”์—์„œ ํ–‰์„ ์‚ญ์ œํ•  ๋•Œ, ํ•ด๋‹น ํ–‰์„ ์ฐธ์กฐํ•˜๋Š” ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ๊ด€๋ จ๋œ ํ–‰๋„ ์ž๋™์œผ๋กœ ์‚ญ์ œ๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, USER ํ…Œ์ด๋ธ”๊ณผ PHOTOS ํ…Œ์ด๋ธ”์ด ์žˆ๊ณ , PHOTOS ํ…Œ์ด๋ธ”์˜ ์™ธ๋ž˜ ํ‚ค๊ฐ€ USER ํ…Œ์ด๋ธ”์„ ์ฐธ์กฐํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ž. USER ํ…Œ์ด๋ธ”์˜ ํ–‰์ด ์‚ญ์ œ๋˜๋ฉด, ์ด์™€ ์—ฐ๊ด€๋œ PHOTOS ํ…Œ์ด๋ธ”์˜ ํ–‰๋„ ์ž๋™์œผ๋กœ ์‚ญ์ œ๋œ๋‹ค. foreign key์˜ on delete cascade ์„ค์ •๋ฐฉ๋ฒ• 1. ์™ธ๋ž˜ ํ‚ค(foreign key) ์„ค์ • ํ•ด๋‹น ํ…Œ์ด๋ธ” ์„ค์ •์— ๋“ค์–ด๊ฐ€์„œ Foreign Key๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑํ•˜๋ฉด์„œ Foreign Key Options - on Delete :..

๐Ÿ›ข๏ธDB/MySQL 2023. 12. 4. 11:49
[DB] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค MySQL - Error Code : 1062.Duplicate entry๊ฐ€ ๋‚˜์˜ค๋Š” ์ด์œ 

MySQL์—์„œ Error Code 1062๋Š” "Duplicate entry" ์—๋Ÿฌ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์ด ์˜ค๋ฅ˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์œ ๋‹ˆํฌ(unique) ๋˜๋Š” ํ”„๋ผ์ด๋จธ๋ฆฌ ํ‚ค(primary key) ์ œ์•ฝ ์กฐ๊ฑด์„ ์œ„๋ฐ˜ํ•˜์—ฌ ์ค‘๋ณต๋œ ๊ฐ’์„ ์‚ฝ์ž…ํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค. ์ด ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”: ์ค‘๋ณต ๊ฐ’์„ ํ™•์ธ: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๊ฐ’์ธ์ง€ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค. SELECT ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ค‘๋ณต๋œ ๊ฐ’์„ ํ™•์ธํ•˜๊ณ , ์‚ฝ์ž…ํ•˜๋ ค๋Š” ๊ฐ’์ด ์ด๋ฏธ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ณ ์œ ํ•œ ๊ฐ’์„ ์‚ฝ์ž…ํ•˜๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธ: ์ค‘๋ณต๋œ ๊ฐ’์„ ์‚ฝ์ž…ํ•˜๋ ค๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ์œ ํ•œ ๊ฐ’์„ ์‚ฝ์ž…ํ•˜๊ฑฐ๋‚˜, ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ์œ ๋‹ˆํฌ ๋˜๋Š” ํ”„๋ผ์ด๋จธ๋ฆฌ ํ‚ค ์ œ์•ฝ ์กฐ๊ฑด์„ ๋งŒ์กฑ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ์•ฝ ์กฐ๊ฑด ํ™•์ธ ๋ฐ ์ˆ˜์ •: ํ…Œ์ด๋ธ”์˜ ์ œ์•ฝ ์กฐ๊ฑด์„ ํ™•์ธํ•˜์—ฌ ์ค‘๋ณต์„ ..

๐Ÿ›ข๏ธDB/MySQL 2023. 12. 4. 10:24
[DB] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค MySQL - ํ…Œ์ด๋ธ”์˜ ๋‹ค์ค‘ ์ปฌ๋Ÿผ unique ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•

SQL์—์„œ์˜ UNIQUE๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ…Œ์ด๋ธ” ์ปฌ๋Ÿผ์— ์ ์šฉ๋˜๋Š” ์ œ์•ฝ ์กฐ๊ฑด(Constraint) ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ์ด๋Š” ํ•ด๋‹น ์ปฌ๋Ÿผ(๋˜๋Š” ์ปฌ๋Ÿผ๋“ค)์ด ๊ฐ€์ง€๋Š” ๊ฐ’๋“ค์ด ์ค‘๋ณต๋˜์ง€ ์•Š๋„๋ก ๋ณด์žฅํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ํ…Œ์ด๋ธ”์˜ unique ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ• 1. ํ•ด๋‹น ํ…Œ์ด๋ธ” ์„ค์ •์—์„œ Indexes ์‹œํŠธ๋กœ ์ด๋™ 2. Index Name์—์„œ ์ƒˆ๋กœ ์ถ”๊ฐ€ํ•˜์—ฌ Type ์„ UNIQUE๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค.(โ˜…์ค‘์š”โ˜…) 3.Index Columns์—์„œ ์ค‘๋ณต์ด ๋˜๋ฉด ์•ˆ๋˜๋Š” ๋‘ ์ปฌ๋Ÿผ์„ ์ฒดํฌ๋ฐ•์Šค๋ฅผ ์„ ํƒํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Apply 4. ๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ ์ค‘๋ณต๊ฐ’์„ ๋„ฃ์–ด ํ…Œ์ŠคํŠธ ํ•ด๋ณธ๋‹ค. ๊ฐ’์ด user_id ์ปฌ๋Ÿผ์ด 2์ด๊ณ  photo_id ์ปฌ๋Ÿผ์ด 1์ธ ํ–‰์€ ์ค‘๋ณต์ด ๋  ์ˆ˜ ์—†๋„๋ก ์„ค์ •์ด ๋˜์—ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์•ˆ์ „ํ•˜๊ฒŒ ์ค‘๋ณต์„ ๋ง‰์Œ์œผ๋กœ์จ ๋ฒ„๊ทธ ๋“ฑ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค. UNIQUE ์ œ์•ฝ..

๐Ÿ›ข๏ธDB/MySQL 2023. 12. 4. 10:16