こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

データの処理速度を速くするには?(perl・PHP・データベース)

個人サイトで、CGIを使ってる者です。

perlを使って、データの収集・表示等行っているのですが、
データ量が増えてきたせいか、
処理に時間がかかるようになってきて、対応を考えてます。


データの取り扱いは、
カンマ区切りの形式で読み書きを行っており、
情報量は3MB(データ数としては5万行)…。
これらのデータを、毎回全件読み込んで条件で抽出してるのですが、
他にもっと効率的な方法があるのではないかと模索中です。


あれこれ模索したところ、よくわからないところがあり、
知ってる方がいらっしゃいましたら、アドバイスの方よろしくお願い致します。
(職場でSQLやACCESSは使っております)

?1…perlよりPHPの方が、こういった処理に向いてる?
?2…データベースを使えば抽出が速くなる?
?3…データベースを使うには何かソフトを買う必要がある?
?4…そもそもperlやPHPでデータベースが使える?

投稿日時 - 2008-02-16 21:29:47

QNo.3782145

困ってます

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

?1…perlよりPHPの方が、こういった処理に向いてる?
たいていの言語で何かしらテキストファイルを読み書きすることは出来ますが、3MともなればPHPだろうともCだろうとも苦痛になってくる
というよりも、それらのアプリを動かしているサーバーのメモリやCPUの処理を食うことですので、データベース代わりとしてテキストを使うには限界があります
ですから、PHPはテキストファイルを扱うためのプログラムが楽に書けるというだけで、大容量のテキストファイルを扱うのに適しているわけではありません


?2…データベースを使えば抽出が速くなる?
劇的に速くなります
5万レコード(行)程度であれば楽々扱えますよ(DBのテーブル設計をどうするかでも左右されますけどね)

?3…データベースを使うには何かソフトを買う必要がある?
有償のデータベースを使いたいのであればデータベースそのものを買う必要があります
オープン系のデータベース(MySQLやPostgresなど)を使うのであれば基本的にはお金はかかりません
ただし、レンタルスペースなどで「データベース利用は別途料金」などのようにそのレンタルスペースのサービスとしての料金を取られる可能性はあります


?4…そもそもperlやPHPでデータベースが使える?
使えます
有名どころのデータベースであれば、有償無償のデータベース限らず使えます
PHPのほうが標準でデータベースとの接続関係を持っているので導入は楽かと思います

投稿日時 - 2008-02-17 00:52:21

お礼

ご回答どうもありがとうございます。
やはりテキストファイルでは限界がありますか… なるほど。
一気には増えないのですが、今後もじわじわと容量は増えていくので、
データベース化の方向で考えてみます。

データベースについてはあまり詳しくないので、
データベースに向いてるPHPに乗り換えてみようと思います。

投稿日時 - 2008-02-17 22:52:17

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

データを検索・抽出するのならデータベースの使用をお勧めします。
特にPHPなら、標準でデータベースを操作する関数が実装されています。
PerlでもCPAN等を使えばデータベースは使えるようになると思います。

データベースは、オープンソースで既に何種類か出ているので、
費用をかけることなく使うことができます。
有名なのはMySQLですが、商用と同じような機能を持っています。

PerlとPHPでどちらかの処理が向いているかは分かりませんが、
同じくらいだと思います。
とりあえずデータベースの使用をお勧めいたします。

投稿日時 - 2008-02-16 21:40:51

お礼

アドバイスどうもありがとうございます。
データベースがやはりオススメで、
データベースを扱うならば、PHPの方が向いてるんですね。

MySQLはよく知らないのですが、
まずはこれを使ってデータベースになれてみようと思います。

投稿日時 - 2008-02-17 22:46:15

あなたにオススメの質問