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.索引优缺点

    优点:加快对表中数据的查找或排序。

    缺点:增加了数据库的存储空间,插入和修改数据时,需要的时间增加。

你可能感兴趣的:(PostgreSQL)