[MySQL] Auto_Increment 한계
CREATE TABLE을 할때, TYPE다음에 나오는 괄호안 숫자가 BYTE를 나타낸다고 알고 있었는데요,
실제로 데이터를 넣어보니 끝도 없이 들어가네요. 왜 이럴까 문서를 찾아보던중 잘 정리된 블로그가 있어서 원인은 잘 알게 되었지요^^
참고 : http://blackbull.tistory.com/44
위 사이트를 읽어보면, 결국 괄호안 숫자와 상관없이 MySQL INT 최대값까지 발번이 될것으로 판단되네요.
그렇다고 INT 최대값인 4,294,967,295까지 테스트를 해볼수도 없고, 그래서 다시한번 구글링을 해봤습니다.
http://forums.devshed.com/mysql-help-4/auto-increment-what-happens-at-max-value-334661.html
요길 보니깐 사람들이 잘 정리해주셨네요^^
int(11) auto increment으로 설정을 하게 되면, 최대 4,294,967,295까지 발번이 되고 이후에는 error가 난다고 하네요.
최대값이 얼마나 큰 숫자인지 계산을 한 글도 있는데요,
10년동안(3650일) 발번을 한다고 볼때, 일별 1,176,703 rows가 발생해야 최대값을 초과할 수 있습니다.
따라서,
Transaction이 엄청 빈번한 OLTP환경에서는 SRL타입을 int(11)로 설정하기보다는
unsigned BIGINT로 설정하시는게 좀더 나을것으로 판단됩니다.
unsigned BIGINT면 최대값이 18,446,744,073,709,551,615이므로 왠만해서는 최대값을 초과하지 않을것으로 사료됩니다. 물론 그게 아니라면 스키마 설계를 다시하심이 낫지 않을까 개인적으로 생각해봅니다.^^
아님, 돈이 빵빵하시면 오라클을 써보심도 좋고요.ㅋㅋ