• ベストアンサー

CGI(掲示板やカウンターなど)とデータベースの利用の意義

CGIを作るのに、(掲示板やカウンターなど)、でファイルの代わりにデータベースを使うのは、意味ありますでしょうか。 想定環境は、linux と PHP と MYSQL です。 掲示板やカウンターにわざわざデータベース使う意義ってあるんでしょうか。 データベースを利用した場合、負荷軽減など、向上するんでしょうか。 海外のスクリプトにPHPとMYSQL を使ったものがよくありますけど、 やっぱり、負荷軽減とかに効果的なんでしょうか。 特に効果もないならファイルで十分と考えてるんですけど、そのあたりが、よく分かりません。

  • defd
  • お礼率19% (11/56)

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

  • ベストアンサー
  • akino4
  • ベストアンサー率18% (35/185)
回答No.3

CGIおんりーでかくならDBが圧倒的にはやいです だってファイルのオープンクローズ繰り返すだけ無駄ですよね。 DBをたてておけばバックエンドで常にひらきっぱにしておいてくれます それ以前にCGIの場合同時に同じデータソースにアクセスしてくるので それらの制御をflockだけでやると効率がわるすぎます。 それのほうが効果大きいかも。 てか・・・・なんでCGIのように複数のプログラムから同時に アクセスが早いか知りたければ、www.postgresql.orgでも みてください。 ちなみに、gooとかyahooとかじゃなくても、自前でサーバを 用意するようなサイトで、動的に色々やるサイトはほとんど なんらかのなんらかのDBをつかってます。 そうしないとまっとうな速度が出ないばかりか、開発コスト もあがりますから。 あと・・・あなたのアプリケーションがどのようなものか また、あなたの技量がどの程度のものかまったくわからないので 負荷についてはなにもいえません。 それこそ自分でコード書いて検証してください。 ちなみに私の場合多くの場合DBでかいたほうが負荷が小さいけど

その他の回答 (2)

  • akino4
  • ベストアンサー率18% (35/185)
回答No.2

私は、けいじばんとかチャットをDBでもファイルでもつくってみたけど・・・ 結論・・・・楽をしたいならDBをつかったほうがいいっすよ。 まぁ~カウンタごときにDBを使うのはなんかパワーショベルで金魚 すくいするような感じがありますけど(笑) まぁ~何でもやってみればわかるっすよぉ~~~linuxとかFreeBSDとか いれて試してみればぁ?

defd
質問者

補足

作るのはデータベース使ったほうが楽らしいですね。 負荷の方はどんな具合でしょう。 とりあえず、スレッド型(負荷重そうだから)の掲示板を想定、 1日5~8万ページビューぐらいの閲覧(html生成しないもので全部データの読み込みで表示、結構な負荷状態)を想定 yahooの掲示板とか、gooの掲示板とかになると ( もうすぐリニューアルらしいですが http://community.goo.ne.jp/help/Images/o0.gif )、やっぱりデータベース使ってるんでしょうかね。 ファイルの読み書きが多いと、やっぱりデータベースの方が負荷が抑えられるんでしょうか。負荷の方が気になります。 読み書きに関しては、ファイル操作のほうが速いって事はないのですかね。 ファイル操作より、データベース操作の方が、速くて、負荷小さいのですかね。 負荷が気になります。

回答No.1

小規模な場合、ファイルで処理するのとたいして変わりありません。 むしろDB使うほうが重いケースもあるでしょう。カウンターなどは さっさとファイルで処理したほうがよろしいかと。 でも、追加削除が頻繁にあり、データの構造が複雑になってきて プログラムも複雑になってきて…という事態ならばDBを使って すべてそのあたりをお任せする方が楽ですね。 データの排他ロックもやってくれるわけですし。バックアップ関係も ユーティリティがあったりしますし。 とはいえ、すべてDBでいいかというと、例えば全文検索とか そういった世界ではいちいちSQLを実行しているよりも自前で 特化したインデックスファイルとデータファイルを定期的に作った ほうが圧倒的に速いぜ、なんてこともあります。 まあ、ですから、効果がよくわからないなあ…といううちは別に まだ使う時期ではないのかもしれません。CGIを作ってるうちに 「なんだかデータの扱いが面倒になってきたなあ。こういうとき DBつかうと楽なのかもなあ」 と思ってから調べても充分かと思いますよ。 例えば、この「教えて!goo」と同じ仕組みを作れと言われたとして あなたはファイルでやってみますか?それとDBを使ったとき、 どちらが少ない日数で安定したプログラムが書けますか? まあそれでファイルで大丈夫!というなら大丈夫なのです。きっと。

関連するQ&A

  • CGIのデーターベース検索について

    CGI初心者です。大変困っておりますので どなたか助けていただきたいのですが… 会社よりデータベースの検索CGIを作るよう言われました。 作りたいのは以下の内容です。 idを入力する部分がある(htmlのフォーム) ↓ その入力の番号を元に検索し該当者を検索する。 ↓ htmlで結果を出す。 と言うものです。 ただしidが40000件程あり どのようなデーターベース処理をすれば いいか困っています。(その内容のCSVはあります。) もしかしたらPHPのほうがいいのかもと思ってしまいます。 どなたかスクリプトやCSVの置き方などご指導いただけると大変ありがたいです。お手数をおかけしますがよろしくお願いいたします。

  • CGIにSSIカウンタをつけたい

    掲示板や日記帳などのCGIに、別途ダウンロードしたSSIのテキストカウンタを表示させようとしたところ、ローカル・Web共に表示されませんでした。 表示する為の記述は「<!--#include virtual="仮想パス"-->」で、HTMLファイルに記述した場合は問題なく表示・動作しました。 HTMLファイルで表示・動作しましたし、CGI・SSI・「.htaccess」ファイルなどの設定はおそらく問題ありません。 SSIのテキストカウンタは「The Room」というサイトの「Text Day Counter Ver.1.10 SSI版」を使用しています。 CGIは「掲示板や日記帳など」と言いましたが、まだ検討段階で特定のCGIはなく、色々なCGIで試しています。 ※特定のものだけではなく、テキストカウンタを表示したいと思うCGIにつけたいのです。 CGIの記述は (1) print "<!--#include virtual=\"仮想パス\"-->\n" ; (2) print '<!--#include virtual="仮想パス"-->\n' ; (3) print "<!--#include virtual='仮想パス'-->\n" ; (4) print <<"EOM"; <!--#include virtual="仮想パス"--> EOM と4通り試しましたが、どれも動作しませんでした。 SSIのテキストカウンタのパスが「http://xxx.yyy.zzz/aaa/bbb/ccc/txtdayc1.cgi」だとしたら、仮想パスは「/aaa/bbb/ccc/txtdayc1.cgi」のようなので、そう記述しましたが動作しませんでした。 CGIと同じディレクトリに置いているので、記述を「<!--#include virtual="./txtdayc1.cgi"-->」に変えたところ、HTMLファイルでは動作しました。 なぜSSIのテキストカウンタがCGIで表示されないのか、アドバイスをお願いできないでしょうか? また、「<!--#include virtual="仮想パス"-->」を「<!--#include virtual="CGIファイル名"-->」または「<!--#include virtual="フルパス"-->」のように記述しても問題ないのかも教えて頂けると助かります。 宜しくお願い致します。

    • ベストアンサー
    • CGI
  • データベースでないデータベースを利用したい

    Linux上でMySQL、PostgreSQL、SQLiteなどのデータベースが一切使えない サーバ上でデータベース(もどき)を利用したいです。 そのサーバはXMLファイル操作も出来ません。 現段階だとテキストベースにfopen()などでごりごり追加・修正・削除を行うクラスを作って 利用するくらいしか思いつきません。 どなたか良い方法があればご教示下さい。 因みにPEARも利用しない事を前提です。

    • 締切済み
    • PHP
  • データベースについて

    csv形式のファイル(データ)があるのですが、これを PHP又はPRELを利用して検索できるようにしたいのです。 データの項目数は5×12000件です。 MySQLというのがインストールされているサーバなのですがCSV形式のファイルをデータベース形式に変換して(?)インターネット上からブラウザで検索できるような CGI又はPHPをご存知ありませんか?

  • CGIの負荷軽減

    サイトを運営しているものです。 最近公開したサイトで、アクセス数がのってきたのはいいのですが、 先日サイトで使っている掲示板(CGI)がサーバーへかけている負荷が大きすぎるとの通達をサーバー管理者の方から受けました。 どうすれば負荷が軽減できるのでしょうか。 教えていただければと思います。 ちなみに使用CGIは 9TST4.さん(ttp://paxs.hp.infoseek.co.jp/9tst4/index.html)の[Stan-BB]というスクリプトです。

  • 掲示板のログとカウンターの数字が同時に消えました!

    ニフティでホームページを作っています。 フリーのCGIで配布されているカウンターと、掲示板(別々のところの)を使っていましたが、気づいたら掲示板のログが消えて、カウンターも1に戻っていました。 調べたところ、カウンターの数字を記憶しているdatファイルはサーバーにあったのですが、中身が白紙になっていました。数字が全くないのです。 カウンターは1のままで誰が何度クリックしても 数字は増えなくなっていました。掲示板は真っ白で書き込みもできなくなりました。 掲示板のログを記録しているdatファイルが存在してるのに中身だけ消えて白紙になってました。 (掲示板のログのdatファイルは四つあり、現在の分の一番新しいものだけが中身が消えてました。) ニフティに聞いても、なにも操作はしてないといわれそのCGIのエラーではないかといわれましたが、同時に二つのものが壊れるとは考えられないのです。 最近はファイルのアップロードもしていなかったので、間違えて削除したとは考えられません。 しかもファイルがないならともかく中身だけ白紙に戻るとは、何が起こったのか全くわからないのです。 原因がわかる方がいらしたら、教えてください。 ログを戻すことはやっぱり不可能ですよね。消えてるわけだから。また同じことにならないようにしたいので、何かありましたら教えてください。 中身が消えたファイルは「Daycount.dat」と「4.dat」という名前です。

  • Perlでのデータベース利用

    とても一般的な質問になりますが、 そこそこ規模の大きな(目標会員数一万人)会員サイトをPerlで構築しようとしています。 問題はデータベースへのアクセス負荷なんですが、 ひとつのテーブルのレコード数が100万行ぐらいになると思います。 一般的なホスティングサーバを利用してデータベースはMySQLです。 「大規模なデータベースシステムはJAVAサーブレットが向いている」と言う話をよく聞きますが、上述のような規模のサイトは(Perl or PHP)+MySQLでは難しいのでしょうか? 出来たらPerlで通してみたいと考えております。 ご意見、ご指導よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • PHPでMySQLのデーターベースが書込み出来ない

    PHPとMySQLとJAVAスクリプトで作成しましたデーターベースについてお尋ねします。 PHPとMySQLで作成したデータベースの検索したり、読み込みを普通に可能ですが、書き込み及び、削除が出来ません。 PhpMyAdminでは書けます(データー入力出来ます)が、PHPプログラムからはデーターを入力したり、削除を行うことが出来ません。 そして、全くエラーも出ません。 PHP上では「書き込みました」と、いかにも正常なようなメッセージが返ってきます。 が、中身は空です。 システムが出来上がって問題なく3年以上使用していたのですが、自宅のLINUXサーバーのHDDが壊れましたので、再度システム構築をやり直しました。 MySQLとPHPも再インストールを行い再構築を行いました。 その後上記症状が出て書き込み、削除が出来なくなりました。 PHPのプログラムは全く触っておらず、変更も更新もしておりません。 念のためプログラムのチェックも何度もしておりますが、勿論これといって問題は見あたりません。 PHP.INI等の設定ファイルに問題があるのでしょうか。 それとも、MySQLに問題が有るのでしょうか。 宜しくご教授の程お願い致します。

  • SQLでの掲示板

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

  • CGIと、MySQLを使わない、アンケートフォームのスクリプトを探しています。

    CGIとMySQLが使えないサーバなので、 CGIと、MySQLを使わない、PHPのみのアンケートフォームのスクリプトを探しています。

    • ベストアンサー
    • PHP