• ベストアンサー

SQLでの掲示板

PHP+MySQLで掲示板を複数作ろう(100個以上)と考えているのですが、 普通のパールなんかのcgiでの掲示板に比べてかなり容量を 食ってしまうものなのでしょうか? PHP+MySQLに慣れたので、なるべくならそれで行きたいのですが。 レンタルしているところでは実際にMySQLの使用容量がわからないので 困っています。(200MBまでOKとのことですが) お詳しい方、是非お教えください。

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

  • ベストアンサー
  • Mizyu
  • ベストアンサー率41% (245/593)
回答No.1

通常のPerlの掲示板というのはテキストに保存する、という形が基本です。ですので、データ容量は変わりないと思います。 テーブルのデータ計算してみてはいかがですか? データ一件あたりのMAXの容量 × 掲示板の数 × 最大で保持するレコードの数 本文の容量を調整してデータ容量の最大値を180MBくらいにすればよいと思います。 また、200MというのはDBのみで200でしょうか? Webサイトの容量が別でしたら、過去ログをHTML化してDBからはデータを消す、という機構を取り入れればいいと思います。

rodem01
質問者

お礼

ありがとうございます。 基本的なことがわかっていなくて・・・ 例えばvarchar(1000)のフィールドに書き込みしてもらうとして、 100件の書き込みがあれば1000×100と考えればよいのでしょうか? それとも実際に書き込まれた分量の容量で済むのでしょうか? (例えば平均100字×1000という計算) HTML化そうですね。なるほど。有難うございます!

その他の回答 (1)

  • Mizyu
  • ベストアンサー率41% (245/593)
回答No.2

補足です。 例を挙げますと、データのレコードが「ID」char(10)「名前」varchar(20)「タイトル」varchar(20)「本文」varchar(500)とあったとします。 IDと名前とタイトルと本文の合計で600バイト使っています。 レコード1件の最大値は600ということになります。 ただ、おっしゃる通りvarcharは可変長なので実際に入る量はもっと少ないですが、計算は最大値で行うべきです。(バグの原因になりかねないですから) 平均値も計算したいのであれば、char,dateのように固定長のものはそのまま、varcharのように可変長のものはおおよその数を入れて計算します。 で、上記したデータは掲示板1つに対して100のレコードを残すとします。 さらに掲示板が100個あると考えたら総容量の最大値は 600*100*100になります。 ここで考えるべきなのは総容量と最大容量の差です。 例えば、最大容量が5000000バイトであったときに容量がオーバーしてしまいます。 そこで保持件数の調整を行います。レコードの保持件数を80とすれば 600*80*100となって最大容量が4800000バイトになりDBに格納しきれます。 そして80以上登録があった場合に最古レコードをHTML化し、DBのデータを削除する機構をPHPに組み込めばいいという計算になります。 頑張ってください。

関連するQ&A