6. clustered index の威力を知るための準備 - PostgreSQL のソースコードを読む

昨日の続き。サンプルデータをきっちり用意します。

CREATE TABLE person (
  social_no integer,
  name text,
  age integer,
  uri text,
  PRIMARY KEY  (social_no)
);
test-# \d person
      Table "public.person"
  Column   |  Type   | Modifiers 
-----------+---------+-----------
 social_no | integer | not null
 name      | text    | 
 age       |  | 
 uri       | text    | 
Indexes:
    "person_pkey" PRIMARY KEY, btree (social_no)


B-tree の primary key index ができました。
続いて age に index を作ります。 range search のパフォーマンスを見たいので B-tree を選んでいます。

create index person_age on person using BTREE (age);


最後にデータの insert 。
age が 0-99 まで一様に分布するように 100 万件 insert するスクリプトMosh で書いて流しています。(spawn で psql 呼んでいるのでむちゃくちゃ遅い)

続きは明日。