문서번호 : 11-729528
Document Information
•
최초 작성일 : 2022.05.13
•
최종 수정일 : 2022.07.14
•
이 문서는 아래 버전을 기준으로 작성되었습니다.
◦
SinglestoreDB : 7.8
Goal
•
auto_increment 컬럼의 요건과 특이사항을 알아본다
Solution
•
AUTO_INCREMNT 컬럼으로 지정하기 위한 요건
◦
bigint 타입이어야 함, 이보다 스케일이 작은 정수라면, 이것을 무시하고 bigint로 변환함
◦
해당 컬럼은 index가 지정되어야 함
•
특이 사항
◦
시작값의 설정은 테이블 생성(CREATE TABLE)시 가능하며, 참조 테이블만 유효하고, 이외는 무시됨
◦
어그리게이터 별로 순차 순증한 값을 생성하며 최소값은 1임
◦
Uniqueness 보장은 constraint 설정이 필요함
◦
연속적, 순차적 증가를 보장하지 않음
값은 커지지만, 어그리게이터에 따라 각각 다른 범위(시작-끝)로 관리됨
-- MA, CA에서 각각 3건씩 INSERT 시킨 후 조회한 결과
singlestore> select * from tb order by b;
+-------------------+------+---------+
| a | b | c |
+-------------------+------+---------+
| 1 | 1 | from MA |
| 2 | 2 | from MA |
| 3 | 3 | from MA |
| 31525197391593473 | 4 | from CA |
| 31525197391593474 | 5 | from CA |
| 31525197391593475 | 6 | from CA |
+-------------------+------+---------+
6 rows in set (0.02 sec)
SQL
복사
◦
만약, 어그리게이터의 재기동이 발생하면, 재기동 된 어그리게이터의 시작 값은 큰 범위 뒤로 건너뛰게 됨(일반테이블: 가까운 백만값, 참조테이블: 가까운 천값)
▪
MA, CA 모두 재기동한 경우
-- MA, CA 모두 재기동후 MA, CA에서 각각 2건씩 INSERT 시킨 후 조회한 결과
singlestore> select * from tb order by b;
+-------------------+------+---------+
| a | b | c |
+-------------------+------+---------+
| 1 | 1 | from MA |
| 2 | 2 | from MA |
| 3 | 3 | from MA |
| 31525197391593473 | 4 | from CA |
| 31525197391593474 | 5 | from CA |
| 31525197391593475 | 6 | from CA |
| 1000000 | 7 | from MA |
| 1000001 | 8 | from MA |
| 31525197392000000 | 9 | from CA |
| 31525197392000001 | 10 | from CA |
+-------------------+------+---------+
10 rows in set (0.01 sec)
SQL
복사
▪
MA만 재기동한 경우
-- MA만 재기동후 MA, CA에서 각각 2건씩 INSERT 시킨 후 조회한 결과
singlestore> select * from tb order by b;
+-------------------+------+---------+
| a | b | c |
+-------------------+------+---------+
| 1 | 1 | from MA |
| 2 | 2 | from MA |
| 3 | 3 | from MA |
| 31525197391593473 | 4 | from CA |
| 31525197391593474 | 5 | from CA |
| 31525197391593475 | 6 | from CA |
| 1000000 | 7 | from MA |
| 1000001 | 8 | from MA |
| 31525197392000000 | 9 | from CA |
| 31525197392000001 | 10 | from CA |
| 2000000 | 11 | from MA |
| 2000001 | 12 | from MA |
| 31525197392000002 | 13 | from CA |
| 31525197392000003 | 14 | from CA |
+-------------------+------+---------+
14 rows in set (0.00 sec)
SQL
복사
References
History
일자 | 작성자 | 비고 |
2022.05.13 | kkh | 추가 수정: wee |
2022.06.10 | kkh | 이관 방안으로 내용 수정 |
2022.07.14 | kkh | 내용 정리 및 예시 추가 |