[pgsql-jp: 30573] Re: 画像データベースの作成。

Tatsuo Ishii t-ishii @ sra.co.jp
2003年 7月 24日 (木) 10:41:04 JST


石井です.

> さて、いろいろ調べようと、webサイトを回っていると、
> 非常に多量のメモリ (RAM) が必要だと言うことが分かりました。

それは具体的にどういう情報なんでしょう?私が知る限り,PHPで画像を管理す
る際にメモリが問題になるのは,画像のupload位です(といってもこの問題は
PHP の問題で,PostgreSQLは無関係です).

ところで,PostgreSQLでバイナリデータを管理する方法はbyteaと2つあって,

> 私の使用サーバのスペックは、Celeron 2.4GHz+RAM1GBという状態です。
> 
> また、規模的には、一つのファイルサイズが、平均500k〜2Mまでで、
> 最大、50000ファイルまで扱いたいと考えております。
> 
> ここで質問なのですが、
> バイナリデータのデータベース化を計ろうと考えるとき、
> 直接PostgreSQLに格納するか、
> データは別の所に保存し、その情報(ファイル名やサイズなど)のみを
> データベースに放り込むか、どちらが良いでしょうか?

ということは,最大で24GBから97GBですか.

large objectを使った方が管理やアプリケーションの手間が減っていいのです
が,単純にファイルに置く場合に比べると容量が増えてしまいます.

たとえば,75018バイトの画像ファイル(NASAから拾ってきたJPEGファイルです) 
を100個large objectに登録すると,DB上では12467ブロック消費します(実際
にはインデックス領域も消費しますが,1-2MB程度で微々たるものです).これ
はディスク領域で言うと,8192*12467/1024 = 99736KBに相当します.一方,
単純にファイルとして格納すると,手元のLinux/ext3では75604KBになりまし
た.というわけで,large objectに格納すると1.3倍ほどディスクを余計に消
費することになります.

この点をどう見るかですね.
--
Tatsuo Ishii



pgsql-jp メーリングリストの案内