📌 Feature Issue
현재 객체 ID (엔티티 객체 식별) 생성을 직접 구현한 IdGenerator로 객체 ID를 생성하고 있습니다.
(UUID, long 타입을 사용하지 않음)
관련 PR
하지만 이 객체 ID가 PK로서, 클러스터 인덱스로서 적합한지에 대한 고민을 하고 있습니다.
MySQL에서는 PK를 클러스터 인덱스로 구성되어 항상 정렬된 인덱스를 유지하기 위해 비용이 발생하게 됩니다.
장점
객체를 유일하게 식별한다
- 객체 10만개 테스트시 약 57개의 중복이 발생, 심각한 오류, 개선필요
xxx-post-xxxx 형태로 가독성 증가
- 랜덤한 문자들을 반환함으로써 보안성
단점
- 무작위로 생성된 ID는 sequential (순차적) 이지 않다 그래서 정렬이 어려움
- 정렬을 위해 소요되는 비용이 자동 증가하는 (auto increment) long 타입의 ID 보다 많이 요구됨
고민내용
- 식별자를 외부로 노출시킬것인가
- 정렬이 필요한 경우 어떻게 할 것인가
- 범위 (예를 들어 최근 게시글 10개 가져오기) 에 대한 요구사항이 있을경우
- 문자열의 길이가 크므로 인덱스로써 사용하기에는 인덱스 생성, 수정 비용이 비교적 클 수 있다 이를 어떻게 해결할 것인가 ?
idgenerator
1. my gen
2. uuid 효율적인 내용
3. snow flake
idgenerator 를 interface로 만들어서 사용해보자
사용하는 방법은
generate를 실행하면 해당하는 entity의 prefix를 포함한
식별자를 생성하는 것
todo
현재 idgenerator를 interface로 만들기
To-do
ETC
📌 Feature Issue
현재 객체 ID (엔티티 객체 식별) 생성을 직접 구현한 IdGenerator로 객체 ID를 생성하고 있습니다.
(UUID, long 타입을 사용하지 않음)관련 PR
하지만 이 객체 ID가 PK로서, 클러스터 인덱스로서 적합한지에 대한 고민을 하고 있습니다.
MySQL에서는 PK를 클러스터 인덱스로 구성되어 항상 정렬된 인덱스를 유지하기 위해 비용이 발생하게 됩니다.
장점
객체를 유일하게 식별한다xxx-post-xxxx형태로 가독성 증가단점
고민내용
To-do
ETC