- ベストアンサー
SELECTの検索速度と、DB設計
DB設計で悩んでいます。 ・一つのテーブルにするとカラム数が100ぐらい。 ・格納するデータはテーブルを正規化するようなものではない。 この場合のSELECTでの検索速度ですが、たとえ取り出すカラムを指定していてもカラム数が多いと検索速度に影響がでるのでしょうか? 或いは、テーブルを小分けにして、取り出すデータに応じてテーブルを結合していく方が良いのでしょうか? という感じでカラム数が検索スピードに与える影響についてどなたかご教授いただけませんでしょうか。宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
幾つかのRDBMSについて知識を有していますが、多くのRDBMSはカラム数が多いと、オーバヘッドにはなります。性能を重視するなら、カラム数は少ない方がいいでしょう。 RDBMSによっては、カラム数による性能劣化を防止する機能を持ったものもありますが、MySQLにそういった機能があるかどうかは把握していません。 正規化するようなものでない100個のカラムは、別々のカラムに分けなければならないものなのでしょうか? SQL中で検索条件、ソート、グループ化、演算などで指定しないなら、DB上はカラム分けは必ずしもしなくていいのではないでしょうか? →DB上は1個のカラムとし、アプリケーション側で分解するといった方法
その他の回答 (1)
- ymmasayan
- ベストアンサー率30% (2593/8599)
回答No.1
カラム数をxとするとアクセス時間はほぼa+bxです。 テーブルを分けるとaの影響で普通はアクセス速度が下がります。 それに速度対策としての分割は論理的な理解を狂わせますので 余りお勧め出来ません。
質問者
補足
素早いご回答ありがとう御座います。 a+bxのaとbは何を示しているのでしょうか?基本的なこととは思いますが、宜しくお願いします。
お礼
お返事が遅くなり申し訳ありません。 なるほど、そういう手段もあるのですね。何も考えずにカラムを増設していました。大半がSQLで検索等の処理をしないデータなので、配列かカンマなんかで繋いで、スリム化してみます! アドバイス有難う御座いました!