- ベストアンサー
プロバイダおまけページに
Perlでサイトを作るつもりですがデータベースを使えません 自PCを公開してPC内にPHPで「教えてgoo!」ようなサイトを作るとしたら データベースを使って作った場合と データベースを使わないでファイルをデータベース代わりにして作った場合と 処理速度はだいぶ違うのでしょうか? データベースを使うことのメリットが分からないので教えてください
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ファイルによるDBでも構わないとは思います。それはデータ量や更新頻度、検索性などを検討して決定します。 ただし、DBのメリットはかなりあると感じます。 データのソーティングや、検索時のインデックス処理などはDBに任せる方が遙かに楽だと思います。 ファイルによる制御の場合、1ファイルに複数ユーザが書き込む等の処理はどうしますか? 1ファイルだとソーティングが難しいですから、複数ファイルに分けますか? ファイルを複数にした場合、プリプロセスである程度目的ファイルが検索・抽出できないと、ファイルのI/O処理が頻繁に発生して、表示をするさいの速度低下になりますが、その処理はどのようにいたしますか? メンテナンスはどうしますか? 処理するためだけの、フラグ等に使用する項目はつけたりしませんか?その場合、フラグはどのように処理しますか? (例:質問に対する締め切り処理) これらについて、ファイルによる処理があるていど理解できていれば、大丈夫だと思いますよ。 ただし、いずれもDBならば状況的に普通の処理であり、サーバ再度処理になるため、WEBに情報を表示する時には、すでにデータが抽出されている為、ファイルのI/O処理よりも早く表示できるでしょう。 検討してみてくださいね。 また疑問あれば、書き込んでください。
その他の回答 (3)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
>Niftyでも使えるのですか? 未確認ですが、Perlが使えるなら使えると思うのですが… PHP5なら、特別に何も必要とせずそのまま使えます
お礼
ありがとうございます 残念ながらNiftyは多分PHPは使えません
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
SQLiteがサーバー要らずのデータベースとして使えます。 Perlからは、 DBD-SQLite2 か SQLite-DB を使えばいいと思います。 バージョンに注意。 一般に、データベースを使う方が処理が早くて、 扱う方は、SQLのような問い合わせを利用できるので、楽です。
- 参考URL:
- http://www.sqlite.org/
お礼
ありがとうございます これはNiftyでも使えるのですか?
- vais
- ベストアンサー率75% (47/62)
考えておられるファイルを使う場合の処理ですが、シーケンシャルアクセスのみということになるようですが、ソートも検索もない状況でも恐らく件数が増えてくれば顕著に速度低下がでると思われます。 テキストベースDBである、バークレイDBを使う等の方が良いとは思いますよ。 perl にはバークレイDBを操作するためのパッケージは入っていると思いますが、うろおぼえです。ごめんなさい。 希望されていたものが、「教えてgoo!」を模したものだとすると、どうしてもシーケンシャルアクセスだけで処理はしがたいと思います。 以下のスレッドは参考になりませんでしょうか。 ・・・おっ、回答になっていないかもしれない。 すいません。(^^;
お礼
ありがとうございます バークレイも考えてみます
補足
ありがとうございます 最初からPCを公開してやるならばPHP+データベースでするのですが 最初はプロバイダのスペース(100MB)+Perlでやるのでデータベースは使えないのです だからPCに移行するときに作り直しになるので仕方なくファイルデータでやろう思いました 妥協して ソートや検索はしない場合表示速度としてはデータベースを使ったほうが早いでしょうか?