Clustering index

ํด๋Ÿฌ์Šคํ„ฐ๋ง์˜ ์‚ฌ์ „์  ์˜๋ฏธ๋Š” ์œ ์‚ฌํ•œ ์†์„ฑ์„ ๊ฐ–๋Š” ์š”์†Œ๋ฅผ ๊ตฐ์ง‘์œผ๋กœ ๋ฌถ์–ด์ฃผ๋Š” ์ž‘์—…์ด๋‹ค. ์ธ๋ฑ์Šค์—์„œ ํด๋Ÿฌ์Šคํ„ฐ๋ง์ด๋ž€ ๋‹จ์–ด๋„ ์˜๋ฏธ๋ฅผ ํฌ๊ฒŒ ๋ฒ—์–ด๋‚˜์ง€ ์•Š๋Š”๋‹ค.

MySQL์—์„œ ํด๋Ÿฌ์Šคํ„ฐ๋ง์€ ํ…Œ์ด๋ธ”์˜ ๋ ˆ์ฝ”๋“œ๋ฅผ PK ๊ธฐ์ค€์œผ๋กœ ๋ฌถ์–ด์„œ ์ €์žฅํ•˜๋Š” ํ˜•ํƒœ๋กœ ๊ตฌํ˜„๋˜๋Š”๋ฐ, InnoDB ์—”์ง„์—์„œ๋งŒ ์ง€์›ํ•˜๋ฉฐ, ๋‚˜๋จธ์ง€ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์—์„œ๋Š” ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค.

ํด๋Ÿฌ์Šคํ„ฐ๋ง ์ธ๋ฑ์Šค

์•ž์—์„œ๋„ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ํด๋Ÿฌ์Šคํ„ฐ๋ง ์ธ๋ฑ์Šค๋Š” ํ…Œ์ด๋ธ”์˜ PK์— ๋Œ€ํ•ด์„œ๋งŒ ์ ์šฉ๋œ๋‹ค.

์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ๊ฒƒ์€ PK ๊ฐ’์— ์˜ํ•ด ๋ ˆ์ฝ”๋“œ์˜ ์ €์žฅ ์œ„์น˜๊ฐ€ ๊ฒฐ์ •๋œ๋‹ค. ๋˜, PK๊ฐ€ ๋ณ€๊ฒฝ๋œ๋‹ค๋ฉด ๊ทธ ๋ ˆ์ฝ”๋“œ์˜ ๋ฌผ๋ฆฌ์ ์ธ ์ €์žฅ ์œ„์น˜๊ฐ€ ๋ฐ”๋€Œ์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

PK๋กœ ํด๋Ÿฌ์Šคํ„ฐ๋ง๋œ ํ…Œ์ด๋ธ”์€ PK ์ž์ฒด์— ์˜์กด๋„๊ฐ€ ์ƒ๋‹นํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹ ์ค‘ํžˆ ๊ฒฐ์ •ํ•ด์•ผ ํ•œ๋‹ค.

ํด๋Ÿฌ์Šคํ„ฐ๋ง ์ธ๋ฑ์Šค ๊ตฌ์กฐ๋ฅผ ๋ณด๋ฉด B-Tree์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ ์„ธ์ปจ๋”๋ฆฌ ์ธ๋ฑ์Šค๋ฅผ ์œ„ํ•œ B-Tree ๋ฆฌํ”„ ๋…ธ๋“œ์™€ ๋‹ฌ๋ฆฌ ๋ฆฌํ”„ ๋…ธ๋“œ์— ๋ ˆ์ฝ”๋“œ์˜ ๋ชจ๋“  ์ปฌ๋Ÿผ(๋ฐ์ดํ„ฐ)๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ๋‹ค. ์ฆ‰, ํด๋Ÿฌ์Šคํ„ฐ๋ง ํ…Œ์ด๋ธ”์€ ๊ทธ ์ž์ฒด๊ฐ€ ํ•˜๋‚˜์˜ ๊ฑฐ๋Œ€ํ•œ ์ธ๋ฑ์Šค ๊ตฌ์กฐ์ด๋‹ค.

ํด๋Ÿฌ์Šคํ„ฐ๋ง ํ…Œ์ด๋ธ”์— update๊ฐ€ ์ˆ˜ํ–‰๋˜๋ฉด ์–ด๋–ค ์ผ์ด ์ผ์–ด๋‚ ๊นŒ?

์ฒ˜์Œ ๊ทธ๋ฆผ์—์„œ๋Š” emp_no=100007์ธ ๋ ˆ์ฝ”๋“œ๋Š” 3๋ฒˆ ํŽ˜์ด์ง€์— ์ €์žฅ๋˜์–ด ์žˆ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ์•„๋ž˜ ๊ทธ๋ฆผ์—์„œ๋Š” emp_no๊ฐ€ 100002๋กœ ๋ณ€๊ฒฝ๋˜๋ฉด์„œ 2๋ฒˆ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ–ˆ๋‹ค. ์‹ค์ œ๋กœ PK๊ฐ€ ๋ณ€๊ฒฝ๋˜๋Š” ์ผ์€ ์—†์ง€๋งŒ ์ด๋Ÿฐ์‹์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค.

circle-info

MyISAM, ๊ธฐํƒ€ InnoDB๋ฅผ ์ œ์™ธํ•œ ํ…Œ์ด๋ธ”์˜ ๋ ˆ์ฝ”๋“œ๋Š” PK๋‚˜ ์ธ๋ฑ์Šค ํ‚ค ๊ฐ’์ด ๋ณ€๊ฒฝ๋œ๋‹ค๊ณ  ํ•ด์„œ ์‹ค์ œ ๋ ˆ์ฝ”๋“œ ์œ„์น˜๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š”๋‹ค. INSERT ๋  ๋•Œ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์˜ ๋ ๋˜๋Š” ๋นˆ ๊ณต๊ฐ„์— ์ €์žฅ๋œ๋‹ค.

ํ•œ๋ฒˆ ๊ฒฐ์ •๋œ ์œ„์น˜๋Š” ์ ˆ๋Œ€ ๋ฐ”๋€Œ์ง€ ์•Š๊ณ , ๋ ˆ์ฝ”๋“œ๊ฐ€ ์ €์žฅ๋œ ์ฃผ์†Œ๋Š” MySQL ๋‚ด๋ถ€์ ์œผ๋กœ ๋ ˆ์ฝ”๋“œ๋ฅผ ์‹๋ณ„ํ•˜๋Š” ID๋กœ ์ธ์‹ํ•˜๊ฒŒ ๋œ๋‹ค. ๋ ˆ์ฝ”๋“œ๊ฐ€ ์ €์žฅ๋œ ์ฃผ์†Œ๋ฅผ ROW-ID๋ผ๊ณ  ํ‘œํ˜„ํ•˜๋ฉฐ, MySQL์—์„œ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ๋…ธ์ถœ๋˜์ง€ ์•Š๋Š”๋‹ค.

๐Ÿค” ๊ทธ๋Ÿผ PK๊ฐ€ ์—†๋Š” InnoDB ํ…Œ์ด๋ธ”์€ ์–ด๋–ป๊ฒŒ ํด๋Ÿฌ์Šคํ„ฐ๋ง ํ…Œ์ด๋ธ”๋กœ ๊ตฌ์„ฑํ•˜๋Š”๊ฐ€?

PK๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ InnoDB ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์ด ๋‹ค์Œ ์šฐ์„ ์ˆœ์œ„๋Œ€๋กœ PK๋ฅผ ๋Œ€์ฒดํ•  ์ปฌ๋Ÿผ์„ ์„ ํƒํ•œ๋‹ค.

  1. PK๊ฐ€ ์กด์žฌํ•˜๋ฉด ๊ทธ ์ปฌ๋Ÿผ์„ ํด๋Ÿฌ์Šคํ„ฐ๋ง ํ‚ค๋กœ ์„ ํƒ

  2. NOT NULL ์˜ต์…˜์˜ UNIQUE INDEX ์ค‘์—์„œ ์ฒซ ๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ฅผ ํด๋Ÿฌ์Šคํ„ฐ๋ง ํ‚ค๋กœ ์„ ํƒ

  3. ์ž๋™์œผ๋กœ ์œ ๋‹ˆํฌํ•œ ๊ฐ’์„ ๊ฐ€์ง€๋„๋ก ์ฆ๊ฐ€๋˜๋Š” ์ปฌ๋Ÿผ์„ ๋‚ด๋ถ€์ ์œผ๋กœ ์ถ”๊ฐ€ํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ๋ง ํ‚ค๋กœ ์„ ํƒ

  4. ์ด๋ž˜๋„ ํ‚ค ํ›„๋ณด๋ฅผ ๋ชป ์ฐพ์œผ๋ฉด InnoDB ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์ด ๋‚ด๋ถ€์ ์œผ๋กœ ๋ ˆ์ฝ”๋“œ์˜ ์ผ๋ จ๋ฒˆํ˜ธ ์ปฌ๋Ÿผ์„ ์ƒ์„ฑ

    • ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋œ ์ผ๋ จ๋ฒˆํ˜ธ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ๋…ธ์ถœ๋˜์ง€ ์•Š์œผ๋ฉฐ ์ฟผ๋ฆฌ ๋ฌธ์žฅ์— ๋ช…์‹œํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

    • ์ฆ‰, ์ธ๋ฑ์Šค๊ฐ€ ์ „ํ˜€ ์—†๋Š” InnoDB ํ…Œ์ด๋ธ”์—์„œ๋Š” ์•„๋ฌด ์˜๋ฏธ ์—†๋Š” ์ˆซ์ž๊ฐ€ ํด๋Ÿฌ์Šคํ„ฐ๋ง ๋œ๋‹ค.

ํด๋Ÿฌ์Šคํ„ฐ๋ง ์ธ๋ฑ์Šค๋Š” ํ…Œ์ด๋ธ”๋‹น ํ•˜๋‚˜๋งŒ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋Šฅํ•˜๋ฉด PK๋ฅผ ์ƒ์„ฑํ•˜์ž.

์„ธ์ปจ๋”๋ฆฌ ์ธ๋ฑ์Šค์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ

MyISAM, MEMORY ํ…Œ์ด๋ธ” ๊ฐ™์€ ํด๋Ÿฌ์Šคํ„ฐ๋ง ๋˜์ง€ ์•Š์€ ํ…Œ์ด๋ธ”์€ INSERT ๋  ๋•Œ ์ฒ˜์Œ ์ €์žฅ๋œ ๊ณต๊ฐ„์—์„œ ์ ˆ๋Œ€ ์ด๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋ž˜์„œ MyISAM, MEMORY ํ…Œ์ด๋ธ”์—์„œ๋Š” PK์™€ ์„ธ์ปจ๋”๋ฆฌ ์ธ๋ฑ์Šค๋Š” ๊ตฌ์กฐ์ ์œผ๋กœ ์ฐจ์ด๊ฐ€ ์—†๋‹ค.

๐Ÿค” InnoDB ํ…Œ์ด๋ธ”์—์„œ ์„ธ์ปจ๋”๋ฆฌ ์ธ๋ฑ์Šค๊ฐ€ ์‹ค์ œ ๋ ˆ์ฝ”๋“œ๊ฐ€ ์ €์žฅ๋œ ์ฃผ์†Œ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋‹ค๋ฉด?

ํด๋Ÿฌ์Šคํ„ฐ๋ง ํ‚ค ๊ฐ’์ด ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ์‹ค์ œ ๋ ˆ์ฝ”๋“œ ์ฃผ์†Œ๊ฐ€ ๋ณ€๊ฒฝ๋˜๊ณ , ํ•ด๋‹น ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ์ธ๋ฑ์Šค์— ์ €์žฅ๋œ ์ฃผ์†Œ๊ฐ’์„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•œ๋‹ค.

์ด๋Ÿฌํ•œ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด InnoDB์˜ ๋ชจ๋“  ์„ธ์ปจ๋”๋ฆฌ ์ธ๋ฑ์Šค๋Š” ํ•ด๋‹น ๋ ˆ์ฝ”๋“œ๊ฐ€ ์ €์žฅ๋œ ์ฃผ์†Œ๊ฐ€ ์•„๋‹ˆ๋ผ PK ๊ฐ’์„ ์ €์žฅํ•˜๋„๋ก ๊ตฌํ˜„๋ผ ์žˆ๋‹ค.

์•„๋ž˜ ์˜ˆ์‹œ์—์„œ, first_name์„ ์ธ๋ฑ์Šค๋กœ ์„ค์ •ํ•˜๊ณ  PK๋กœ ํด๋Ÿฌ์Šคํ„ฐ๋ง ๋œ InnoDB์™€ ๊ทธ๋ ‡์ง€ ์•Š์€ MyISAM์˜ ์ฐจ์ด๋ฅผ ๋ณด์ž.

  • MyISAM: idx_firstname ์ธ๋ฑ์Šค๋ฅผ ๊ฒ€์ƒ‰ํ•ด์„œ ๋ ˆ์ฝ”๋“œ์˜ ์ฃผ์†Œ๋ฅผ ํ™•์ธํ•˜๊ณ  ๋ ˆ์ฝ”๋“œ ์ฃผ์†Œ๋ฅผ ์ด์šฉํ•ด์„œ ์ตœ์ข… ๋ ˆ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.

  • InnoDB: ์ธ๋ฑ์Šค๋ฅผ ๊ฒ€์ƒ‰ํ•ด ๋ ˆ์ฝ”๋“œ์˜ PK๋ฅผ ํ™•์ธํ•˜๊ณ  PK๋ฅผ ๊ฒ€์ƒ‰ํ•ด์„œ ์ตœ์ข… ๋ ˆ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.

๊ณผ์ •๋งŒ ๋ด๋„ InnoDB๊ฐ€ ๋” ์ ๊ฒŒ ์ˆ˜ํ–‰ํ•œ๋‹ค.

ํด๋Ÿฌ์Šคํ„ฐ๋ง ์ธ๋ฑ์Šค ์žฅ๋‹จ์ 

์žฅ์ :

  • PK๋กœ ๊ฒ€์ƒ‰ํ•  ๋•Œ ์ฒ˜๋ฆฌ ์„ฑ๋Šฅ์ด ๋น ๋ฅด๋‹ค.

  • ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ์„ธ์ปจ๋”๋ฆฌ ์ธ๋ฑ์Šค๊ฐ€ PK๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์„œ ์ธ๋ฑ์Šค๋งŒ์œผ๋กœ ์ฒ˜๋ฆฌ๋  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ (์ปค๋ฒ„๋ง ์ธ๋ฑ์Šค)

๋‹จ์ :

  • ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ์„ธ์ปจ๋”๋ฆฌ ์ธ๋ฑ์Šค๊ฐ€ PK๋ฅผ ๊ฐ–๊ธฐ ๋•Œ๋ฌธ์— PK์˜ ํฌ๊ธฐ๊ฐ€ ํด ๊ฒฝ์šฐ ์ธ๋ฑ์Šค ํฌ๊ธฐ๊ฐ€ ์ปค์ง„๋‹ค.

  • ์„ธ์ปจ๋”๋ฆฌ ์ธ๋ฑ์Šค๋ฅผ ํ†ตํ•ด ๊ฒ€์ƒ‰ํ•  ๋•Œ PK๋กœ ๋‹ค์‹œ ํ•œ๋ฒˆ ๊ฒ€์ƒ‰ํ•ด์•ผํ•œ๋‹ค.

  • INSERTํ•˜๋ฉด PK์— ์˜ํ•ด ๋ ˆ์ฝ”๋“œ์˜ ์ €์žฅ ์œ„์น˜๊ฐ€ ๊ฒฐ์ •๋˜์–ด ์ฒ˜๋ฆฌ ์„ฑ๋Šฅ์ด ๋А๋ฆฌ๋‹ค.

  • PK๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ ๋ ˆ์ฝ”๋“œ๋ฅผ DELETE โ†’ INSERT ํ•˜๋Š” ์ž‘์—…์ด ํ•„์š”ํ•˜์—ฌ ์ฒ˜๋ฆฌ๊ฐ€ ๋А๋ฆฌ๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ ํด๋Ÿฌ์Šคํ„ฐ๋ง ์ธ๋ฑ์Šค์˜ ์žฅ์ ์€ ๋น ๋ฅธ ์ฝ๊ธฐ, ๋‹จ์ ์€ ๋А๋ฆฐ ์“ฐ๊ธฐ์ด๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์˜จ๋ผ์ธ ํŠธ๋žœ์žญ์…˜ ํ™˜๊ฒฝ(OLTP)์—์„œ๋Š” ์“ฐ๊ธฐ์™€ ์ฝ๊ธฐ ๋น„์œจ์ด 2:8, 1:9 ์ •๋„๋ผ๊ณ  ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์กฐ๊ธˆ ๋А๋ฆฐ ์“ฐ๊ธฐ๋ฅผ ๊ฐ์ˆ˜ํ•˜๊ณ  ์ฝ๊ธฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์€ ์ค‘์š”ํ•˜๋‹ค.

ํด๋Ÿฌ์Šคํ„ฐ๋ง ํ…Œ์ด๋ธ” ์‚ฌ์šฉ ์ฃผ์˜์‚ฌํ•ญ

ํด๋Ÿฌ์Šคํ„ฐ๋ง ๋˜์ง€ ์•Š์€ ํ…Œ์ด๋ธ”์— ๋น„ํ•ด InnoDB์™€ ๊ฐ™์€ ํด๋Ÿฌ์Šคํ„ฐ๋ง ํ…Œ์ด๋ธ”์—์„œ๋Š” ์ฃผ์˜ํ•ด์•ผ ํ•  ์‚ฌํ•ญ์ด ์žˆ๋‹ค.

ํด๋Ÿฌ์Šคํ„ฐ๋ง ์ธ๋ฑ์Šค ํ‚ค์˜ ํฌ๊ธฐ

๋ชจ๋“  ์„ธ์ปจ๋”๋ฆฌ ์ธ๋ฑ์Šค๋Š” ํด๋Ÿฌ์Šคํ„ฐ๋ง ํ‚ค๋ฅผ ํฌํ•จํ•œ๋‹ค. ๊ทธ๋ž˜์„œ PK์˜ ์‚ฌ์ด์ฆˆ๊ฐ€ ์ปค์ง„๋‹ค๋ฉด ์„ธ์ปจ๋”๋ฆฌ ์ธ๋ฑ์Šค๋„ ๊ฐ™์ด ์ปค์ง„๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํ…Œ์ด๋ธ”์— ์„ธ์ปจ๋”๋ฆฌ ์ธ๋ฑ์Šค๊ฐ€ 4~5๊ฐœ ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜๋ฉด ์„ธ์ปจ๋”๋ฆฌ ์ธ๋ฑ์Šค ํฌ๊ธฐ๋Š” ๊ธ‰๊ฒฉํžˆ ์ฆ๊ฐ€ํ•œ๋‹ค. 5๊ฐœ์˜ ์„ธ์ปจ๋”๋ฆฌ ์ธ๋ฑ์Šค๋ฅผ ๊ฐ€์ง€๋Š” ํ…Œ์ด๋ธ”์˜ PK ํฌ๊ธฐ์— ๋”ฐ๋ผ ๊ฒฝ์šฐ๋ฅผ ๋น„๊ตํ•ด๋ณด์ž.

  • ์„ธ์ปจ๋”๋ฆฌ ์ธ๋ฑ์Šค์˜ ๋ฆฌํ”„ ๋…ธ๋“œ์—๋Š” ์„ธ์ปจ๋”๋ฆฌ ์ธ๋ฑ์Šค ํ‚ค ๊ฐ’๊ณผ ํ•ด๋‹น ๋ ˆ์ฝ”๋“œ์˜ PK ๊ฐ’์ด ์ €์žฅ๋œ๋‹ค.

PK ํฌ๊ธฐ
๋ ˆ์ฝ”๋“œ๋‹น ์ฆ๊ฐ€ํ•˜๋Š” ์ธ๋ฑ์Šค ํฌ๊ธฐ
100๋งŒ ๊ฑด ๋ ˆ์ฝ”๋“œ ์ €์žฅ ์‹œ ์ฆ๊ฐ€ํ•˜๋Š” ์ธ๋ฑ์Šค ํฌ๊ธฐ

10bytes

10 * 5 = 50 ๋ฐ”์ดํŠธ

50 * 1,000,000 = 47MB

50bytes

50 * 5 = 250 ๋ฐ”์ดํŠธ

250 * 1,000,000 = 238MB

PK๋Š” AUTO-INCREMENT ๋ณด๋‹ค๋Š” ์—…๋ฌด์ ์ธ ์ปฌ๋Ÿผ์œผ๋กœ ์ƒ์„ฑ(๊ฐ€๋Šฅํ•˜๋ฉด)

InnoDB๋Š” PK๊ฐ€ ํด๋Ÿฌ์Šคํ„ฐ๋ง ํ‚ค๋กœ ์‚ฌ์šฉ๋˜๊ณ  ๋ ˆ์ฝ”๋“œ์˜ ์œ„์น˜๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ PK๋กœ ๋ฒ”์œ„ ๊ฒ€์ƒ‰์€ ๋งค์šฐ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌ๋œ๋‹ค. MyISAM๊ณผ ๊ฐ™์ด ํด๋Ÿฌ์Šคํ„ฐ๋ง ๋˜์ง€ ์•Š๋Š” ํ…Œ์ด๋ธ”์— ๋น„ํ•ด ์—„์ฒญ๋‚œ ์ฐจ์ด๋ฅผ ๋งŒ๋“ ๋‹ค.

๊ทธ๋Ÿฌ๋ฏ€๋กœ ๊ทธ ์ปฌ๋Ÿผ์˜ ํฌ๊ธฐ๊ฐ€ ํฌ๋”๋ผ๋„ ํ•ด๋‹น ๋ ˆ์ฝ”๋“œ๋ฅผ ๋Œ€ํ‘œํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ทธ ์ปฌ๋Ÿผ์„ PK๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

AUTO-INCREMENT ์ปฌ๋Ÿผ์„ ์ธ์กฐ ์‹๋ณ„์ž๋กœ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ

๋ณตํ•ฉ ์ปฌ๋Ÿผ์œผ๋กœ PK๊ฐ€ ๊ตฌ์„ฑ๋˜๋Š” ๊ฒฝ์šฐ, PK์˜ ๋ฐ์ดํ„ฐ ์‚ฌ์ด์ฆˆ ํฌ๊ธฐ๊ฐ€ ์ปค์งˆ ๋•Œ๊ฐ€ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ PK๊ฐ€ ์ปค์ ธ๋„ ์„ธ์ปจ๋”๋ฆฌ ์ธ๋ฑ์Šค๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค๋ฉด ๊ทธ๋Œ€๋กœ PK๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

์„ธ์ปจ๋”๋ฆฌ๋„ ํ•„์š”ํ•˜๊ณ  PK์˜ ํฌ๊ธฐ๋„ ํฌ๋‹ค๋ฉด AUTO_INCREMENT ์นผ๋Ÿผ์„ ์ถ”๊ฐ€ํ•˜๊ณ  PK๋กœ ์„ค์ •ํ•˜๋ฉด ๋œ๋‹ค. ์ด๋ ‡๊ฒŒ PK๋ฅผ ๋Œ€์ฒดํ•˜๊ธฐ ์œ„ํ•œ ์ธ์œ„์ ์œผ๋กœ ์ถ”๊ฐ€๋œ PK๋ฅผ ์ธ์กฐ ์‹๋ณ„์ž(Surrogate key)๋ผ๊ณ  ํ•œ๋‹ค.

๋กœ๊ทธ ํ…Œ์ด๋ธ”๊ณผ ๊ฐ™์ด ์กฐํšŒ๋ณด๋‹ค INSERT ์œ„์กฐ์˜ ํ…Œ์ด๋ธ”์€ AUTO_INCREMENT๋ฅผ ์ด์šฉํ•œ ์ธ์กฐ ์‹๋ณ„์ž๋ฅผ PK๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์€ ์„ฑ๋Šฅ ํ–ฅ์ƒ์— ๋„์›€์ด ๋œ๋‹ค๊ณ  ํ•œ๋‹ค.

Q&A

  1. ํด๋Ÿฌ์Šคํ„ฐ๋ง ์ธ๋ฑ์Šค์™€ B-Tree๋Š” ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ๊ฐ€?

๋ฐ์ดํ„ฐ ์ €์žฅ

  • ํด๋Ÿฌ์Šคํ„ฐ๋ง ์ธ๋ฑ์Šค๋Š” ๋ฆฌํ”„ ๋…ธ๋“œ์— ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค.

  • B-Tree๋Š” ๋ฆฌํ”„ ๋…ธ๋“œ์— ํ‚ค์™€ ๋ฐ์ดํ„ฐ ์ฃผ์†Œ๋งŒ ์ €์žฅํ•œ๋‹ค.

๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ

  • ํด๋Ÿฌ์Šคํ„ฐ๋ง ์ธ๋ฑ์Šค๋Š” PK ๋ณ€๊ฒฝ ์‹œ ๋ฐ์ดํ„ฐ ์žฌ๋ฐฐ์น˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

  • B-Tree๋Š” ์ƒ๋Œ€์ ์œผ๋กœ ๋ณ€๊ฒฝ์ด ์šฉ์ดํ•˜๋‹ค.

๊ฒ€์ƒ‰ ์„ฑ๋Šฅ

  • ํด๋Ÿฌ์Šคํ„ฐ๋ง ์ธ๋ฑ์Šค๋Š” PK ๊ธฐ๋ฐ˜ ๊ฒ€์ƒ‰์ด ๋งค์šฐ ๋น ๋ฅด๋‹ค.

  • B-Tree๋Š” ๋ชจ๋“  ํ‚ค์— ๋Œ€ํ•ด ๊ท ์ผํ•œ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

Last updated