- ベストアンサー
テーブル設計について
二つのテーブルの行数は同じとします 1行に10カラム以上あるテーブルから1カラムだけ取得するのと idとvoteだけの2カラムで作ったテーブルから1カラムだけ取得する場合の処理スピードは速くなりますか? updateで更新する時のスピードもカラム数が多いと違いが出ますか? よろしくお願いします sprintf("SELECT vote FROM hoge WHERE id=%d", $id );
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
厳密に測定すれば、2つしかカラムのないテーブルの方が、10カラムのテーブルよりも高速です。 たとえ、残り8カラムのデータすべてがNULLでもRDBMSでのテーブルスキーマの管理コストが余計にかかるためです。 しかし、ほとんどの場合、その他の要因のほうがパフォーマンスに影響を与えると考えられます。無用にテーブルを分割しても結合コストのほうが大きい場面のほうが多いと思います。 ちなみに、RDBではなければよく使うカラムが限られるような局面が多い事に注目して実装化されたのが「カラムベース・データベース」です。 この考え方は最近のMS SQL Serverなどでも取り入れられており、注目する必要があるかもしれません。
お礼
回答ありがとうございます 参考にさせていただきました テーブル2つ作ることにしました、結合コストはかかりますがわかりやすさをとりました