PostgreSQL中的索引

2021-08-28 15:07:00 字數 1127 閱讀 3548

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

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

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

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

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

create table person (

id int,

name varchar(20)

);

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);

修改索引的名稱。

alter index idx_name rename to idx_name_new;
修改填充因子。

alter index idx_name set(fillfactor=70);
drop index idx_name;
如果有物件依賴這個索引,則刪除會失敗。使用「cascade」選項,表示當有依賴這個索引的物件時,一併把這些物件刪除掉。

drop index idx_name cascade;
優點:加快對錶中資料的查詢或排序。

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

PostgreSQL中的反轉索引(GIN)

索引是一種快速查詢資料的方法,它記錄了表中一列或多列與其物理位置之間的對應關係。常用的索引有b tree,hash等。本文將介紹gin,即 反轉索引。反轉索引 gin 可以處理包含多個鍵的值,如陣列。可以通過定義gin索引的特定操作符實現不同的功能。gin的標準中定義了用於一維陣列的操作符,如包含 ...

PostgreSQL 什麼是索引?

什麼是索引?索引是提高資料庫效能的常用途徑。比起沒有索引,使用索引可以讓資料庫伺服器更快找到並獲取特定行。但是索引同時也會增加資料庫系統的日常管理負擔,因此我們應該聰明地使用索引。每種索引演算法都分別適合某些特定的查詢型別,因為他們用了不同的索引結構。pg裡的所有索引都是 從屬索引 索引在物理上與它...

必須了解的PostgreSQL索引知識

create index index name on table name expression 一旦有了函式索引,當定義的表示式出現在where或order by子句中,postgresql會使用函式索引。需要提醒的是,表示式索引維護成本較高,當插入或更新記錄時都需要評估表示式更新索引資訊。只有當...