• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:データベース:主キーが文字列の場合IDを振るべき?)

テーブルの主キーが文字列の場合、通し番号に置き換えて検索を速くする方法はあるか?

このQ&Aのポイント
  • データベースのテーブルで主キーが文字列の場合、その主キーを通し番号に置き換えることで検索の速度を向上させることができるのかについて調査しています。
  • 長いテスト項目名など40文字以上の文字列の場合、主キーを通し番号に置き換えることで検索速度が向上する可能性があります。
  • 通し番号に置き換えるときにどの文字数以上から効果が現れるのかについて、皆さんのご意見や経験を教えていただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.1

検索する時の条件は何ですか? upper_limit , lower_limit を検索するのであればどちらも違いが無いでしょう。 test_name を検索するのであれば、プライマリキーに指定されてインデックスが作成されている方が速いので前者です。 プライマリキーにするくらいですから test_name が完全なユニーク値でしょうから、別途数値キーを作らなくてもいいと思います。 もし、このテーブルと結合するテーブルが他にもいっぱいあるのであれば数値キーをプライマリーキーにした方がインデックスが小さくなってメモリの使用効率が上がり速くなると思いますが、例示されているようなテーブル分割は意味が無いと思います。

sucker
質問者

お礼

ベストアンサーを差し上げます。 今回の場合は、わざわざ数値キーを別途作らなくてもいいんですね。 お察しの通り、検索条件はテスト項目名で、各テスト項目名はユニーク値です。 では、結合するテーブルが増えてきたら数値キーの追加を考えます。 自分はインデックスの仕組みが数値の場合(B-tree)しか知らないので、今度文字列のインデックスについて調べてみます。 ご回答ありがとうございました!

関連するQ&A