DBはBツリーを維持する必要があります (または同様の構造)それらを注文する方法でキーを使用します。
キーがハッシュされてBツリーに保存されている場合は、一意性をすばやく確認できます。 キーの-キーはまだ効率的に検索することができます。ただし、範囲を効率的に検索することはできません。 データの数(例:LIKE
)Bツリーは文字列値に従って順序付けられなくなったためです。
したがって、ほとんどのDBは実際に文字列をBツリーに格納していると思います。これにより、(1)より多くのスペースを使用できます。 数値よりも(2)Bツリーをリバランスする必要があります キーが任意の順序で挿入されている場合(数値pkのように値を増やすという概念はありません)。
ペナルティ 実際には、取るに足らないものから巨大なものまでさまざまです。それはすべて、使用法、行数、文字列キーの平均サイズ、テーブルを結合するクエリなどによって異なります。