문제

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;
        }
      }
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top