- PR -

テーブルサイズによる性能の差について

1
投稿者投稿内容
うる
常連さん
会議室デビュー日: 2005/10/16
投稿数: 41
投稿日時: 2006-02-08 07:08
みなさん、こんにちは。

同じレコード数のテーブルA,Bがあった場合。
Aのテーブルにはファイル等のデーターが格納され、比較的容量が大きい、
Bのテーブルには大きなデーターが格納されておらず、比較的容量が小さい。
このような状態でSELECTでデータを取得する場合、
A,Bで速度的な性能に大きな違いは出てくるのでしょうか?
(A,Bで取得するデータは同じようなものとします。)

質問の背景としましては、
添付ファイルを保存するテーブルを分けて作成すべきか、
ひとつのテーブルにまとめるべきか、迷っております。
せん
ぬし
会議室デビュー日: 2002/03/04
投稿数: 397
投稿日時: 2006-02-08 08:07
使用するDBによってかわってくるかもしれませんが。

一レコードのサイズが大きいものと小さいものとを同じ件数
引っ張ってきた時に速度差はでるのか、ということとですよね?

大きな差、については環境とデータ件数によるかとおもいますが、
テーブル毎のデータ量が大きい方が、より負荷をかけるとはおもいます。

あとは、A と B が個別に使用される状況があるのか?
によってテーブルを分けるか分けないか、を考える必要があると思います。

とりあえず、こんな所でしょうか。
Lichtenstein
ベテラン
会議室デビュー日: 2003/11/06
投稿数: 61
投稿日時: 2006-02-08 09:09
例えば日付のカラムがあり、その日付にインデックスが付いていて、
その日付を条件としてSELECTするならば、変化はないでしょうね。

気になるのは、もしも、その添付ファイルが無い場合が多いなら、
テーブルが過剰に大きくなる事です。INSERTも遅くなるでしょう。
質問の本題はSELECTなので、関係ないかもしれませんが。
うる
常連さん
会議室デビュー日: 2005/10/16
投稿数: 41
投稿日時: 2006-02-08 19:46
みなさん回答ありがとうございます。

>気になるのは、もしも、その添付ファイルが無い場合が多いなら、
>テーブルが過剰に大きくなる事です。

DBはPostgreSQLなのですが、
添付ファイルはBYTEA型のフィールドに定義しました。
この場合は、添付ファイルが無い場合は、
テーブルサイズはそれ程大きくならないと思っていたのですが、
どうなのでしょうか。

ご回答よろしくお願いいたします。
今川 美保(夏椰)
ぬし
会議室デビュー日: 2004/06/10
投稿数: 363
お住まい・勤務地: 神奈川県茅ヶ崎市
投稿日時: 2006-02-08 20:15
http://www.postgresql.jp/document/pg812doc/html/storage-toast.html
このあたりの話が思考の手助けになるかと思います。
Lichtenstein
ベテラン
会議室デビュー日: 2003/11/06
投稿数: 61
投稿日時: 2006-02-09 09:17
PostgresSQLは分かりません…… しかし可変長を使うなら、パフォーマンスは、
DBとマシンパワーの影響を大きく受けると思うので、出来るだけ実機で試すべきですよ。

>TOAST
PostgresSQLは学術的でカッコいいですねえ。
自分はとりあえず再利用しやすい形で作って、パフォーマンスの悪い所を
何かベンダー依存の機能で何とかするやり方になれているので、ここまで考えて
設計するのには憧れます。
1

スキルアップ/キャリアアップ(JOB@IT)