一般的にRDBMSではインデックスにB+木を利用していると思います。良くわからないのは、キーが文字列で長い場合です。単純にキーをノードに格納すると、キーがノードの容量の多くを占めます。このため、ノードに格納できる要素数が少なくなり、時間的・空間的な効率が悪化するように思います。RDBMSでは、どのようにこの問題を解決しているのでしょうか?
以下いずれかの形式に沿って回答をお願いします。
簡単な解説も加えていただけると助かります。
1. 文字列をキーとするインデックスで効率の良いXXというアルゴリズムがあり、一般的にRDBMSではそれを利用している
2. XXというRDBMSでは、XXのようなアプローチを採用している
3. 一般的にRDBMSでは長いキーに特に対策をしていない
なお、MySQLのcol_name(length)のようにプリフィックス長でキーを切り詰める方法や、PostgreSQLのpg_trgmモジュールのようにn-gramインデックスを作る方法は、回答不要です。
また、そもそもとんちんかんなことを質問している場合、そのことをご指摘ください。
1. 文字列をキーとするインデックスで効率の良いハッシュというアルゴリズムがあり、一般的にRDBMSではそれを利用している。
ハッシュ関数 - Wikipedia
アルゴリズムとしては、MD5とかが有名です。
http://ja.wikipedia.org/wiki/MD5