23

逆索引付けについて学びました。ウィキペディアのページには、

データベース管理システムでは、リバース キー インデックス戦略は、インデックスに入力する前にキー値を逆にします。1たとえば、値 24538 はインデックスでは 83542 になります。キー値の反転は、新しいキー値が前の値よりも大きい、つまり値が単調に増加する、シーケンス番号などのデータのインデックス作成に特に役立ちます。逆キー インデックスは、インデックス ブロックの競合を減らすため、大量のトランザクション処理システムで特に重要になっています。

キー値の反転がシーケンス番号のインデックス付けに役立つのはなぜですか? また、リバース インデックスが大量のシステムでインデックス ブロックの競合を減らすのに役立つのはなぜですか? 要するに、逆索引付けのポイントは何ですか?

4

1 に答える 1

44

あなたの例では、連続番号が逆索引付けの優れたアプリケーションであることを示しています。引用された番号を取得する24538と、特定の時点でインデックスに挿入されます。シーケンスの次の番号は になります24539。これは、最上位桁が同一であるため、最初の番号に非常に近いインデックスに挿入されます。これを拡張すると、多くの連番はすべてほぼ同じポイントに挿入する必要があり、インデックス ブロックを拡張し、途中でインデックスを再調整する際にかなりのオーバーヘッドが発生します。

これらの数値の最下位桁は、最上位桁よりも急速に変化します。したがって、数字の順序を逆にすると、それぞれ と が得83542られ93542ます。これらの 2 つの数値は、はるかに離れてインデックスに挿入され、これを多くの数値に拡張すると、インデックスはよりバランスの取れた方法で構築され、インデックス管理のオーバーヘッドが削減されます。

数字を逆にする操作はコンピューティング用語では簡単ですが、インデックスの管理には多くのディスク アクセスが含まれる可能性があるため、管理オーバーヘッドを削減する方法でアイテムをインデックスに挿入すると、パフォーマンスが大幅に向上します。

于 2013-11-09T20:47:32.517 に答える