« Alive2日目 | メイン | インストール環境の無いところでDBI »

2005年08月08日

Perlでデータベース [Perl]

Perl/CGIでデータの保存を行う処理をする場合、どのような形式で保管するかが大いに迷うことになる。このたびもとあるプロジェクトのためにさまざまな方式を試してみたが、未だに決定には至っていない。

選択肢は大きく分けて3つある。

テキストファイル

もっともシンプルなやり方。単純にCSVっぽいデータ形式にする他に、Perlのハッシュ形式にしてrequireするという方法がある。これだとフィールドに名前がつけられるし、直接変数に代入されるので手続きが簡単だ。

ロック処理やファイルの入出力など、原始的て低水準な手続きを一から書かなければならないのが痛いところだ。他に便利なものがあるのに、車輪を二度発明するようなものだ。

DBIモジュール

データベースを使う。幸いさくらインタネットのスタンダードはmySQLが使える。やはり速さと安定性、そして機能で行くなら正規のデータベースを使うのが一番良い。

ただし安価なレンタルサーバでは軒並み使えないという問題がある。mySQLが無くてもDBD::CSVやDBD::Spriteで頑張るという方法はあるが、そもそもDBIが使えない環境では無理だ。一般に配布となると、環境の構築による制限が加わってしまう。

xDBM

SDBM等のデータベースを使用する。DBIに比べれば、若干環境に依存しにくいというメリットがある。またランダムアクセスなファイルに保存されるので、テキストファイルほどI/Oに時間がかかったりはしない。

ただ機能はあまりに低く、柔軟性が低いという意味ではテキストデータベースより劣るイメージもある。連結主キーが使えないというそれだけのために、使用を躊躇せざるを得ない。

投稿者 : 16:20 | コメント (0) | トラックバック (0)

トラックバック

このエントリーのトラックバックURL:
http://totora.jpn.org/mt/mt-tb.cgi/29

コメント

コメントしてください




保存しますか?

(書式を変更するような一部のHTMLタグを使うことができます)