1. 程式人生 > >PostgreSQL中的索引

PostgreSQL中的索引

     索引是一種快速查詢資料的方法,它記錄了表中一列或多列與其物理位置之間的對應關係。常用的索引有B-tree,Hash,GIST及GIN等。

   (1)B-tree索引適合處理等值查詢和範圍查詢。

   (2)Hash只適合處理簡單的等值查詢。

   (3)GIST支援很多不同的索引策略。

   (4)GIN反轉索引,可以處理包含多個鍵的值,如陣列。

     本文將介紹簡單的B-tree索引,其他型別的索引會在以後的文章中逐一介紹。

1.建表

create table person (
  id  int, 
  name varchar(20)
);

2.建索引

create index idx_name on person(name);

   建立索引的時候可以指定引數,如指定儲存引數fillfactor。

create index idx_name on person(name) with (fillfactor=50) ;

   按降序建索引

create index idx_name on person(name desc); 

"name"欄位用空值時,指定空值排在前面/後面。

create index idx_name on person(name desc nulls first); 
create index idx_name on person(name desc nulls last); 

3.修改索引

   修改索引的名稱。

alter index idx_name rename to idx_name_new;

   修改填充因子。

alter index idx_name set(fillfactor=70);

4.刪除索引

 drop index idx_name;

    如果有物件依賴這個索引,則刪除會失敗。使用“cascade”選項,表示當有依賴這個索引的物件時,一併把這些物件刪除掉。

drop index idx_name cascade; 

5.索引優缺點

    優點:加快對錶中資料的查詢或排序。

    缺點:增加了資料庫的儲存空間,插入和修改資料時,需要的時間增加。