Hibernate、Struts2、Spring フレームワークを使用して、何百万ものユーザーが同時に情報や注文を送信するときにデータベースの主キーを生成するのに適した方法はどれですか?
いくつかのオプションがあります:
1: 「uuid」で生成
2: "sequence" で生成する
3: あなたのソリューション...
(データの移植性と効率を考慮して)
Hibernate、Struts2、Spring フレームワークを使用して、何百万ものユーザーが同時に情報や注文を送信するときにデータベースの主キーを生成するのに適した方法はどれですか?
いくつかのオプションがあります:
1: 「uuid」で生成
2: "sequence" で生成する
3: あなたのソリューション...
(データの移植性と効率を考慮して)
データベースを使用して一意のキーを管理します。
INSERT INTO yourTable (yourSequence.nextval(), COLUMN1, COLUMN2, ... )
アプリケーションで独自のキーを生成することは確かに機能しますが、アプリケーションが複数のサーバーにスケーリングされる場合、その準備をしないと問題が発生する可能性があります。
MySQL を使用している場合は、AUTO_INCREMENT を使用できます - http://www.tutorialspoint.com/mysql/mysql-using-sequences.htm
hibernate ジェネレーターの実装を見てください - http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/mapping.html#mapping-declaration-idさまざまなタイプがあります。
私は HiLo アルゴリズムを好みます。ここで説明を参照してくださいHi/Lo アルゴリズムとは何ですか? 大量のデータに対して優れたスループットを提供するためです。
クラスター化されたプライマリ インデックスと一緒に使用されるため、Guidはあまり適切なプライマリ キーではないことに注意してください。