[pgsql-jp: 27151] Re: 見積り表領域と
sugita @ sra.co.jp
sugita @ sra.co.jp
2002年 8月 26日 (月) 12:34:32 JST
杉田です。
From: "sasaki" <GSP05271 @ nifty.com>
Date: Mon, 26 Aug 2002 07:58:19 +0900 (JST)
;;; 単インデックス作成する場合でも、下記のように複数プライマリーキー存在する場合、
;;; プライマリーキーの足し算をすればよろしいでしょうか?
そうなりまするアラインメントを考慮して、
8 + 12 (char(6)) + 12 (char(6)) + 8 (char(3)) = 40
です。
;;; 例:下記三つのプライマリーキーで1つのインデックスを作成する時。
;;; char code(6) プライマリーキー sizeof(IndexTupleData) +6
;;; char name(6) プライマリーキー sizeof(IndexTupleData) +6
;;; char age(3) プライマリーキー sizeof(IndexTupleData) +3
;;; time timestamp
;;;
;;; また、キーの長さが3,7の場合、sizeof(IndexTupleData)がいくつになるのでしょうか
;;; ?
固定です。
;;; 手元にソースがないので、申しわけありませんがお願いします。
ソースは、必ず手元に置くべきですよ。
;;; 上記は単インデックスの場合ですが、複数インデックスを作成される時はどうなるので
;;; しょうか?
pg_filedump を入手されて試すのが早いですよ。
;;; 例1:二つのプライマリーキーで1つのインデックス、1つのユニークキーで
;;; 1つのインデックスを作成する時。
;;; char code(6) プライマリーキー
;;; char name(6) プライマリーキー
;;; char age(30) ユニークキー
;;; time timestamp;
char code(6) プライマリーキー
char name(6) プライマリーキー
と
char age(3) ユニークキー (30 は、3 の間違い?)
に分けて、2 つのインデックスファイルができる他は、今までと同じです。
;;; 例2:1つのプライマリーキーで1つのインデックス、3つのキーで1つのインデック
;;; ス、
;;; 2つのキーで1つのインデックス作成する時。
;;; int num; プライマリーキー
;;; char code(6); インデックス1作成キー
;;; char name(6); インデックス1作成キー
;;; char age(3); インデックス1作成キー
;;; char cli(6); インデックス2作成キー
;;; char ser(6); インデックス2作成キー
こちらも、インデックス1 とインデックス2 に分けて、今までと同じです。
Kenji Sugita
pgsql-jp メーリングリストの案内