안녕하세요
MariaDB v10.5 이고 Master-Slave 구조 입니다. < insert , execution 은 Master 에서 수행되고,,, 데이터는 slave 로 동기화..됨>
아래 이유로 채번을 Max+1 로 가이드해 왔는데
- Master 노드 부하 최소화, Replicat 시간차 고려, 채번테이블 관리로 인한 부하 (commit, lock), sequence 사용할 경우, sequence 값이 달라질 우려...
- 결재문서 테이블의 결재문서 에 대한 다중/부하 테스트 수행 시,, max+1 이 중첩되서 dup 나는 경우가 생겼습니다. <설계 직원 2만명 선 >
- 이럴 경우 어떻게 해야 할 지 고민인데..
A. 오류 코드로 max+1 로 1-2번 더 시도 하는 것이 좋을 지 ?
B. sequence 로 바꾸어 처리하는 것이 좋을 지 ?
C. 아니면 다른 방법이 있을지 ?
경험 있으신 개발자 분들의 조언을 부탁드립니다.
auto increment 속성을 사용하지 않는 특별한 이유가 있는 건가요?
의견 감사합니다.
고려하지 않은 이유는, 문서번호 업무 규칙이 "Char 타입, 연도+구분코드+순번" 으로, auto increment 로 int 값을 받아서 그 숫자값 만으로 문서번호를 사용할 수 없으니, 채번 채번테이블과 유사할 거라 생각 했습니다.
제가 놓치고 있는 부분이 있다면 말씀 부탁드려요..
해당컬럼은, 아래 처럼... "문서번호ID"를 생성합니다. max+1 로 추출하다가 중복이 생긴 컬럼의 데이터 입니다. 전자결재 PK 입니다.
2022AAA000001
2022AAA000002
2022AAA000003
.......
제가 투입 되기 전에, 이렇게 설계/개발이 되어 있었습니다..
"문서번호ID" 을 협의를 통해 아예 다른 형태로 변경하는 게 더 나을까요 ?
어렵네요.. 컬럼 수정하기에는 많은 개발공수가 예상되는데요.
채번 테이블은 안될것같고 ,
pk 뒤 숫자가 계속증가해도 된다면
pk : 문서번호 + lpad(sequence...)
의견 감사합니다.
(휴대폰으로 접속 했는데,, 댓글에 대한 댓글 기능이 안 보이네요,, T.T )