묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
mysql에서 getNextSequence()할때 궁금한게 있습니다.
2010.07.03 15:21
전문적인 웹개발자가 아니라 궁금한게 있습니다.;;
getNextSequence() 할 때 보면 유일값을 만들어준다는건 이해가 되는데
혹시나 싶어 다른 DB를 보니 그냥 제한없이 순차적인 증가인데
mysql에서만 10,000단위로 초기화를 시키더군요.
데이터타입은 bigint(64)인데 실제 사용하는건 10,000으로 제한을 두는게 어떤 이유인건가요?
이렇게 되면 10,000이 넘어가고나서 srl값이 충돌나지 않나요?
혹시 mysql의 특성상 한계값이 존재하는건지 궁금합니다.
제가 임의로 10,000단위 제한을 풀어버리고 모듈이나 애드온을 개발하면 문제가 생길 여지가 있는지요?
MySQL 경우 srl 값은 실제 xe_sequence 테이블에 들어가 있는 값이 아니라 pk의 auto increment 값을 사용합니다.
10,000 단위로 초기화를 하는 것이 아니라 의미없는 data row를 지우는 것인데요
srl 값이 10,000 이 넘었을때 1이 되는 것이 아니라 10,001이 됩니다.
xe_sequence 테이블에 값이 지워졌어도 말이죠.
MySQL bigint unsigned 범위는 0 ~ 18446744073709551615 까지 입니다.