'auto_increment ์์ฑ์ด ์ค์ ๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธฐ๋ณธ ํค๋ฅผ ์ฐ๋ฉด ๋์ง ์์๊น?'
-> ๋ถ์ฐ ํ๊ฒฝ์์๋ ์ด ์ ๊ทผ๋ฒ์ด ์ ๋จนํํ
๋ฐ.. DB ํ๋๋ก๋ ์๊ตฌ๋ฅผ ๊ฐ๋นํ ์ ์์
-> ์ฌ๋ฌ DB server๋ฅผ ์ฐ๋ ๊ฒฝ์ฐ์๋ ์ง์ฐ ์๊ฐ(delay)์ ๋ฎ์ถ๊ธฐ๊ฐ ๋ฌด์ฒ ํ๋ค ๊ฒ
* ID๋ ์ ์ผํด์ผ ํ๋ค.
* ID๋ ์ซ์๋ก๋ง ๊ตฌ์ฑ๋์ด์ผ ํ๋ค.
* ID๋ 64๋นํธ๋ก ํํ๋ ์ ์๋ ๊ฐ์ด์ด์ผ ํ๋ค.
* ID๋ ๋ฐ๊ธ ๋ ์ง์ ๋ฐ๋ผ ์ ๋ ฌ ๊ฐ๋ฅํด์ผ ํ๋ค.
* ์ด๋น 10,000๊ฐ์ ID๋ฅผ ๋ง๋ค ์ ์์ด์ผ ํ๋ค.
๋ถ์ฐ ์์คํ ์์ ์ ์ผ์ฑ์ด ๋ณด์ฅ๋๋ ID๋ฅผ ๋ง๋๋ ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ
* ๋ค์ค ๋ง์คํฐ ๋ณต์ (multi-master replication)
* UUID(University Unique Identifier)
* ํฐ์ผ ์๋ฒ(ticket server)
* ํธ์ํฐ ์ค๋
ธํ๋ ์ดํฌ(twitter snowflack) ์ ๊ทผ๋ฒ
* ์ฌ์ธ(sign) ๋นํธ: 1๋นํธ ํ ๋น. ์์ ์์ ๊ตฌ๋ณํ๋ ๊ณณ์ ์ฌ์ฉ
* ํ์์คํฌํ(timestamp): 41๋นํธ ํ ๋น. ๊ธฐ์ ์๊ฐ(epoch) ์ดํ๋ก ๋ช ๋ฐ๋ฆฌ์ด๊ฐ ๊ฒฝ๊ณผํ๋์ง๋ฅผ ๋ํ๋ด๋ ๊ฐ.
* ๋ฐ์ดํฐ ์ผํฐ ID: 5๋นํธ ํ ๋น. ๋ฐ์ดํฐ์ผํฐ๋น 32๊ฐ์ ์๋ฒ ์ฌ์ฉ ๊ฐ๋ฅ.
* ์๋ฒ ID: 5๋นํธ ํ ๋น. ๋ฐ์ดํฐ ์ผํฐ๋น 32๊ฐ์ ์๋ฒ ์ฌ์ฉ ๊ฐ๋ฅ
* ์ผ๋ จ๋ฒํธ: 12๋นํธ ํ ๋น. ๊ฐ ์๋ฒ์์๋ ID๋ฅผ ์์ฑํ ๋๋ง๋ค ์ด ์ผ๋ จ๋ฒํธ๋ฅผ 1์ฉ ์ฆ๊ฐ. ์ด ๊ฐ์ 1๋ฐ๋ฆฌ์ด ๊ฒฝ๊ณผ ๋ง๋ค 0์ผ๋ก ์ด๊ธฐํ(reset)
[์ฌ์ง]
๋ฐ์ดํฐ์ผํฐ ID์ ์๋ฒ ID๋ ์์คํ
์ด ์์๋ ๋ ๊ฒฐ์ . ์ผ๋ฐ์ ์ผ๋ก ์์คํ
์ด์ ์ค์๋ ๋ฐ๋์ง ์์.
ํ์์คํฌํ๋ ์ผ๋ จ๋ฒํธ๋ ID ์์ฑ๊ธฐ๊ฐ ๋๊ณ ์๋ ์ค์ ๋ง๋ค์ด์ง๋ ๊ฐ
ํ์์คํฌํ
[์ฌ์ง]
41๋นํธ๋ก ํํํ ์ ์๋ ํ์์คํฌํ์ ์ต๋๊ฐ์ ๋๋ต 69๋
์ ํด๋น
-> ID์์ฑ๊ธฐ๋ 69๋
๋์๋ง ์ ์ ๋์ : ์ดํ์๋ ๊ธฐ์ ์๊ฐ์ ๋ฐ๊พธ๊ฑฐ๋, ID ์ฒด๊ณ๋ฅผ ๋ค๋ฅธ ๊ฒ์ผ๋ก ์ด์ (migration)ํด์ฃผ์ด์ผ ํจ
์ถ๊ฐ ๋ ผ์ point
์๊ณ ๋๊ธฐํ(clock synchronization)
- ID ์์ฑ ์๋ฒ๋ค์ด ์ ๋ถ ๋ค๋ฅธ ์๊ณ๋ฅผ ์ฌ์ฉํ๋ค๊ณ ๊ฐ์ ํ ์..
- ํ๋์ ์๋ฒ๋ ์ฌ๋ฌ ์ฝ์ด์์ ์คํ๋ ๊ฒฝ์ฐ
- ์ฌ๋ฌ ์๋ฒ๊ฐ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋
๋ฆฝ๋ ์ฌ๋ฌ ์ฅ๋น์์ ์คํ๋๋ ๊ฒฝ์ฐ
- NTP(Network Time Protocol)์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฐ์ฅ ๋ณดํธ์ ๋ฐฉ๋ฒ
๊ฐ ์ (section)์ ๊ธธ์ด ์ต์ ํ
- ๋์์ฑ์ด ๋ฎ๊ณ ์๋ช
์ด ๊ธด ์ฑ ๊ฐ์ ๊ฒฝ์ฐ ์ผ๋ จ๋ฒํธ ์ ๊ธธ์ด ์ค์ด๊ณ
ํ์์คํฌํ ๊ธธ์ด ๋๋ฆฌ๋ ๊ฒ์ด ํจ๊ณผ์
๊ณ ๊ฐ์ฉ์ฑ(high availability)
ID ์์ฑ๊ธฐ๋ ํ์ ๋ถ๊ฐ๊ฒฐ ์ปดํฌ๋ํธ ์ด๋ฏ๋ก ์์ฃผ ๋์ ๊ณ ๊ฐ์ฉ์ฑ์ ์ ๊ณตํด์ผ ํจ.