質問

Microsoft.NET Framework でのシーケンシャル GUID のパフォーマンスに関する投稿を考慮してください (「 Sequential Guid は標準 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