人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

掲示板を実装するのはファイルシステムが良いか、DBが良いか?

お世話になっております。
年間2万?5万件程度の書き込みが見込まれる掲示板システムを作成しようとしています。仕様としては1階層のトピックID配下にメッセージIDが連番で並んで、タイトル、投稿者、投稿日時、投稿内容が入るごく、オーソドックスなものです。良く雑誌に載っている掲示板の作成方法は大体DBを使用して記事を入れ込んでいますが、自分の感覚ではなんだか増長に思えてなりません。

上記のような使用なので、トピックごとにフォルダを切ってメッセージIDごとのファイルに落とすものの方が効率的に思えます。

実際の運用ではどちらが良いでしょうか?
たとえば、このハテナの実装などはどうなっているのでしょうか?

ご存知の方は教えてください。
よろしくお願いします。


●質問者: m-hasega
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● パパトモ

規模の大きな掲示板のシステムの場合、次のケースを考慮しなければ、色々と問題が出て閉鎖することになりかねません。

などなど。想定外のケースを考慮すると、文章を探し出したりするために管理者が検索できる機能がないと、規模の大きなBBSを運営して行けなくなります。特に法的なところは、管理者の責任が問われる事もありますから大変です。なので、応用が利くDBが使われるケースが多くなるのです。DBなら、プログラム無しで管理するツールがありますから、そういうので想定外のケースにも柔軟に対応できるからです。

はてなの場合、複数サーバで動作しているように見えます。たぶん、アクセスが集中したときの負荷分散などの理由だと思います。見た目は単純ですが、舞台裏は複雑そうですね。


パパトモさんのコメント
結構苦労するのは、ボット対策だと思います。

m-hasegaさんのコメント
はてなのメッセージはDBに書き込まれているのでしょうか?この点がとても気になります。一々select/insert/delete するのでしょうか?自分は(あまり)やりたくないので・・・。

パパトモさんのコメント
はてなはDBを使っていると思います。そのように推測できる根拠がいくつもあります。 SQLが面倒ということであれば、perlやphpで作られたフリーのBBSを改造したらいかがでしょうか。例えばphpBBとか・・・

m-hasegaさんのコメント
ありがとうございます、取りあえず、phpBBを評価して見ます。因みにperl版の掲示板システムはご存じないでしょうか?当方perl(Catalyst5.9)とphp5.4を使用していますが、phpは図形描画専用状態で、どちらかと言えばperlで実装したい気がします。

パパトモさんのコメント
私もどちらかというと、perl派なので、PHPはどうもね・・・すぐ慣れると思います。 phpBBなら日本語化キットを使うと、管理画面も簡単に日本語化できます。 http://bbmods.info/bbs/viewforum.php?f=8 注意点は、一度インストールに失敗すると、結構めんどうなので、インストールは慎重に、かつ一回で済ますようにした方が良いです。

2 ● TransFreeBSD

長くなりそうなので回答で。

一々select/insert/delete するのでしょうか?

ファイルシステムでも相当の機能はいりますよね。しかも、たぶん自分で実装しなければならない。
ファイルロックとかIDの整合性を保ちつつパフォーマンスも確保するとか、この規模なら難しくないとは思いますが、面倒ですし、何よりそれがRDBMの機能の一つですから、それを再実装するのは勉強のためか、使えないか、あとは極限までチューンナップしたいから、くらいでしょう。
あと、フレームワーク使えばより抽象化したモデルとして付いてきますし、それ使わない手もないかと思います。実際、フレームワークのデモ的なのと言えば、メッセージPOSTして、それにコメント付けれるという、ブログ的というか今回の掲示板的なのですし、それ拡張すればOKじゃないですか?
というか規模が小さいほど、多少の無駄はあっても、手間かけて無駄をそぎ落とすより、既存の汎用品を使って実装の手間を(あとバグも)減らすほうがお得な場合が多いかと。

はてなは規模違います。ファイルシステムでとか、画像や動画の実体置く以外ないです。商業ベースでその規模目指すとかじゃなければ、そこまで考える必要はないかと。
http://eighteentillidie.com/2008/07/entry-898.html

ファイルシステムをそのまま利用する利点があるとすれば、クライアントに静的ファイルとしてそのままアクセスさせるのが効率はいいし、キャッシュやCDNの恩恵も受けやすいというのはあります。今時ならjQueryとかで、クライアント側で合成させる手とかもあり得ます。
ただ、そこまで考えるほどのアクセスだと、投稿側もかなりの量でしょうから、それなりに工夫は必要でしょうし、データベースとのハイブリッドになるというか、データベース避ける理由もないと思います。


m-hasegaさんのコメント
んー、取りあえずDBの方向性で考えます。どうもです。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ