- 締切済み
行数について
MySQLバージョン4.1.16を使用しています。 例えば、1ユーザごとに平均1000行を持たせるテーブルがあったとしたら それは良くない構造なのでしょうか? 1ユーザで1000なので、仮に1万ユーザ居たとしたらそれだけで 1万×1000=1000万行なので、恐らく駄目ですよね・・・(100行ぐらいなら許容範囲なのかな??) そういう場合、プログラム側で工夫するしかないのでしょうか? いきなり1000行を1行に纏めるは難しいと思いますが、 1つのカラムに('aaaa',11,'ああああ')と「,(カンマ)」で区切って入れるやり方や、 それともカラムの数を増やすやり方とか、どのような方法が良いのでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- yambejp
- ベストアンサー率51% (3827/7415)
回答No.1
単純に行数ですべてのスピードがきまるほどSQLは単純な構造ではありません。 データが大きくなればそれにみあったチューニングがあります。 もちろん質の問題はあります、無駄なデータが1000行あって効率化できるなら パフォーマンスはかなりかわってくるでしょう。 カンマ区切りで一つのカラムにする・・・SQLの性質から言ってこれでは 早くならない。そんなことするくらいなら、1000行あった方がましだと 思います。 とにかく「正規化」など学習して、データの効率的な持ち方を研究する ことです。
お礼
ご返答ありがとうございます。 もちろん正規化は自分なりに勉強したつもりですが(このような構造になってしまっては 理解してないことと同じかもしれませんが・・・) こちらとしては、何百何千万というレコードを扱ったことがない(当然ですが)ので このような1ユーザに1000行も持たせる構造が、 あまり良くないことだけども存在してもいいのかな?というのが疑問で、 yambejpさんの仰る、 >そんなことするくらいなら、1000行あった方がましだと思います。 というのを、そのままの意味で「そんな酷いことをするぐらいなら、そちらの方がまし」 と受けとめたのですが、1ユーザに1000行も持たせるというか、 そのようなアプリケーションは実際にあって、このインターネットにおいてどこかで 運用されている例などはあるのでしょうか?