索引是一種快速查詢資料的方法,它記錄了表中一列或多列與其物理位置之間的對應關係。常用的索引有b-tree,hash等。本文將介紹gin,即:反轉索引。
反轉索引(gin)可以處理包含多個鍵的值,如陣列。可以通過定義gin索引的特定操作符實現不同的功能。gin的標準中定義了用於一維陣列的操作符,如包含「@>」,被包含「
建立乙個person表,包含id,name和phone。由於乙個人可能有多個**號碼,所以將phone定義為乙個陣列。
create table person (
id int,
name varchar(20),
phone varchar(32)
);
想要按照**號碼做快速查詢,如查乙個號碼屬於誰,就需要建立乙個gin索引。
create index idx_phone on person using gin(phone);
insert into person values(1,'april','');
insert into person values(2,'harris','');
查詢號碼『1111111』屬於誰,「@>」是陣列的操作符,表示「包含」的意思,gin索引能在「@>」上起作用。
select * from person where phone @> array['1111111'::varchar(32)];
執行結果:
PostgreSQL基礎知識與基本操作索引頁
luckyjackgao gmail.com 1 psql 1.1 psql and chinese 如何使 postgresql 的psql 使用 中文提示資訊 1.2 psql change chinese info 更改postgresql的中文顯示資訊 1.3 psql tips postg...
PostgreSQL中的索引
索引是一種快速查詢資料的方法,它記錄了表中一列或多列與其物理位置之間的對應關係。常用的索引有b tree,hash,gist及gin等。1 b tree索引適合處理等值查詢和範圍查詢。2 hash只適合處理簡單的等值查詢。3 gist支援很多不同的索引策略。4 gin反轉索引,可以處理包含多個鍵的值...
PostgreSQL中的chkpass模組
目錄 文件用途 詳細資訊 文件用途 chkpass模組使用了乙個名為chkpass的資料型別,此型別適用於儲存加密的口令。詳細資訊 使用chkpass模組後,每個口令在輸入的時候就自動的被轉換為加密的形式,而且總是以加密的形式儲存。進行比較時,可簡單地與明文口令比較,比較函式會先對明文口令進行加密。...