PostgreSQL中的索引
阿新 • • 發佈:2018-12-12
索引是一種快速查詢資料的方法,它記錄了表中一列或多列與其物理位置之間的對應關係。常用的索引有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.索引優缺點
優點:加快對錶中資料的查詢或排序。
缺點:增加了資料庫的儲存空間,插入和修改資料時,需要的時間增加。