• ベストアンサー

テーブル設計について

二つのテーブルの行数は同じとします 1行に10カラム以上あるテーブルから1カラムだけ取得するのと idとvoteだけの2カラムで作ったテーブルから1カラムだけ取得する場合の処理スピードは速くなりますか? updateで更新する時のスピードもカラム数が多いと違いが出ますか? よろしくお願いします sprintf("SELECT vote FROM hoge WHERE id=%d", $id );

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

  • ベストアンサー
  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

厳密に測定すれば、2つしかカラムのないテーブルの方が、10カラムのテーブルよりも高速です。 たとえ、残り8カラムのデータすべてがNULLでもRDBMSでのテーブルスキーマの管理コストが余計にかかるためです。 しかし、ほとんどの場合、その他の要因のほうがパフォーマンスに影響を与えると考えられます。無用にテーブルを分割しても結合コストのほうが大きい場面のほうが多いと思います。 ちなみに、RDBではなければよく使うカラムが限られるような局面が多い事に注目して実装化されたのが「カラムベース・データベース」です。 この考え方は最近のMS SQL Serverなどでも取り入れられており、注目する必要があるかもしれません。

flash0
質問者

お礼

回答ありがとうございます 参考にさせていただきました テーブル2つ作ることにしました、結合コストはかかりますがわかりやすさをとりました

関連するQ&A