• ベストアンサー

SELECTの検索速度と、DB設計

DB設計で悩んでいます。 ・一つのテーブルにするとカラム数が100ぐらい。 ・格納するデータはテーブルを正規化するようなものではない。 この場合のSELECTでの検索速度ですが、たとえ取り出すカラムを指定していてもカラム数が多いと検索速度に影響がでるのでしょうか? 或いは、テーブルを小分けにして、取り出すデータに応じてテーブルを結合していく方が良いのでしょうか? という感じでカラム数が検索スピードに与える影響についてどなたかご教授いただけませんでしょうか。宜しくお願いします。

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

  • ベストアンサー
回答No.2

幾つかのRDBMSについて知識を有していますが、多くのRDBMSはカラム数が多いと、オーバヘッドにはなります。性能を重視するなら、カラム数は少ない方がいいでしょう。 RDBMSによっては、カラム数による性能劣化を防止する機能を持ったものもありますが、MySQLにそういった機能があるかどうかは把握していません。 正規化するようなものでない100個のカラムは、別々のカラムに分けなければならないものなのでしょうか? SQL中で検索条件、ソート、グループ化、演算などで指定しないなら、DB上はカラム分けは必ずしもしなくていいのではないでしょうか? →DB上は1個のカラムとし、アプリケーション側で分解するといった方法

briantaphy
質問者

お礼

お返事が遅くなり申し訳ありません。 なるほど、そういう手段もあるのですね。何も考えずにカラムを増設していました。大半がSQLで検索等の処理をしないデータなので、配列かカンマなんかで繋いで、スリム化してみます! アドバイス有難う御座いました!

その他の回答 (1)

  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.1

カラム数をxとするとアクセス時間はほぼa+bxです。 テーブルを分けるとaの影響で普通はアクセス速度が下がります。 それに速度対策としての分割は論理的な理解を狂わせますので 余りお勧め出来ません。

briantaphy
質問者

補足

素早いご回答ありがとう御座います。 a+bxのaとbは何を示しているのでしょうか?基本的なこととは思いますが、宜しくお願いします。

関連するQ&A