[解決済み] Hi/Loアルゴリズムとは?
2022-03-21 02:29:38
質問
Hi/Loアルゴリズムって何?
で見つけたんだけど NHibernate ドキュメント (ユニークキーを生成する方法のひとつで、セクション 5.1.4.2) に記載されていますが、その仕組みについてきちんとした説明がありません。
Nhibernateが処理しているのは知っているし、内部を知る必要はないのだが、ちょっと気になる。
どのように解決するのですか?
基本的な考え方は、主キーを構成する2つの数値、すなわち、quot;high" と "low" があるということです。クライアントは基本的に"high"シーケンスをインクリメントすることで、前の"high"値の全範囲と様々な"low"値から安全にキーを生成できることが分かっているのです。
例えば、現在の値が35のquot;high"シーケンスがあって、quot;low"の数値が0~1023の範囲にあるとします。この場合、クライアントはシーケンスを36まで増やし(35を使用している間、 他のクライアントが鍵を生成できるようにするため)、35/0、35/1、35/2、35/3...といった鍵を知ることができる。35/1023はすべて使用可能である。
主キーなしで値を挿入し、それをクライアントに取り込むのではなく、クライアント側で主キーを設定できるのは、(特にORMの場合)非常に便利です。他のことはさておき、これは親子関係を簡単に作れるということで、キーをすべて設定してから 任意の を挿入し、バッチ処理をより簡単にすることができます。
関連
-
EF Exception Inquiry (エンティティオブジェクトは、IEntityChangeTrackerの複数のインスタンスから参照できません。)...
-
ORA-65096 無効な共通ユーザー名またはロール名
-
node.jsサーバーのmysqlデータベース接続タイムアウト問題(Error: connect ETIMEDOUT)
-
mysql データが長すぎて列 xxx の解決策にならない
-
DB2におけるNULLおよびNULL処理
-
[解決済み] ゲーム「2048」の最適なアルゴリズムとは?
-
[解決済み] オブジェクト名の前のシングルアンダーコアとダブルアンダーコアの意味は何ですか?
-
[解決済み】「INNER JOIN」と「OUTER JOIN」の違いは何ですか?
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み】カレンダーアプリケーションで定期的なイベントをモデル化するための最良の方法は何ですか?[解決済み]
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ORA-30926: ソース・テーブルの安定した行のセットを取得できませんか?
-
CMakeのエラーを解決する。ソースディレクトリ "*" には、CMakeLists.txt が含まれていないようです。
-
PostgreSQLのリモートアクセスエラーを解決する サーバーに接続できませんでした:接続拒否(0x0000274D/10061)
-
[解決済み] データベースの水平方向と垂直方向の拡大縮小の違い【終了しました
-
[解決済み] 全レコードを返すElasticsearchクエリ
-
[解決済み] データベース駆動型アプリケーションのユニットテストに最適な戦略とは?
-
[解決済み] PostgreSQLの場合。コマンドラインからPostgreSQLのデータベースを削除する【終了しました
-
[解決済み】mongoimportを使用してcsvをインポートする方法
-
[解決済み】GUID / UUIDデータベースキーの利点と欠点
-
[解決済み] VARCHAR(255) が(他の長さではなく)頻繁に使用されているのを見るのは、何か理由があるのでしょうか?