문제
Microsoft.NET 프레임워크의 순차 GUID 성능에 대해 제가 작성한 게시물을 고려하면(참조 표준 Guid에 비해 Sequential Guid의 성능 향상은 무엇입니까?) 누군가가 Windows DLL에 구현된 동일한 알고리즘의 적절하고 확실하며 빠르고 잘 작동하는 Java 구현을 가지고 있습니까?
Massimo에 감사합니다
해결책
이 문서를 참조하세요: http://www.informit.com/articles/article.aspx?p=25862&seqNum=7 (7페이지에 연결됨)
여기에는 저자가 "COMB" Guid라고 부르는 알고리즘이 포함되어 있습니다.아래에 그의 코드(SQL)를 재현합니다.
SET @aGuid = CAST(CAST(NEWID() AS BINARY(10))
+ CAST(GETDATE() AS BINARY(6)) AS UNIQUEIDENTIFIER)
이것을 Java 또는 원하는 언어로 변환하는 것은 간단합니다.분명한 기본 원칙은 날짜를 Guid의 구성 요소로 만드는 것입니다.그는 다양한 접근 방식의 성능을 훌륭하게 분석하고 있으므로 전체 기사를 잘 읽어 보십시오.
다른 팁
순차 UUID의 경우 버전 1 UUID를 찾고 있습니다. Java UUID 생성기 프로젝트는 꽤 잘 작동하는 것 같고 사용하기 매우 쉽습니다.
Generators.timeBasedGenerator().generate().toString()
이 페이지는 Java의 몇 가지 버전 1(순차적) UUID 구현에 대한 링크입니다.http://johannburkard.de/blog/programming/java/Java-UUID-generators-compared.html
나는 이것을 임시 컬렉션의 대리 키 역할을 하는 DTO에 대한 UUID(Universally Unique ID)를 생성하는 데 사용합니다.같은 것인지는 모르겠지만 올바른 방향을 알려줄 수 있습니다.
import java.util.UUID;
...
private String uuid=null;
...
protected String getUuid() {
synchronized (this) {
if (null ==uuid) {
uuid = UUID.randomUUID().toString();
}
return uuid;
}
}