ほとんどの実装では、キーは、区切り記号付きのすべてのキー値を含む、より長いキーです。そこには魔法はありません;-)
あなたの例では、キー値は次のようになります
"123499|John Doe|Conway, NH" "32144|Bill Gates| Seattle, WA"
複合キーを使用したこれらのインデックスの特徴の1つは、中間ツリーノードを使用してクエリを「カバー」できることです。
たとえば、IDが指定された名前と都市を検索するクエリの場合、IDはインデックスの最初にあるため、インデックスはこれを効率的に検索できます。中間ノードに入ると、キーから名前と都市を「解析」でき、リーフノードに移動して同じものを読み取る必要はありません。
ただし、クエリで電話番号も表示したい場合は、完全なレコードが見つかったときにロジックがリーフをたどります。