postgresql 索引

哈哈 阅读:940 2020-05-08 10:20:51 评论:0

1、B-tree索引

create index idx_contacts_name on contacts(name);

2、数组索引

create index idx_contacts_phone on contacts using gin(phone);

注:phone在contacts表中是一个数组类型

3、降序索引

create index idx_contacts_name on contacts(name desc);

4、指定存储参数

create index idx_contacts_name on contacts(name) with(fillfactor=50);

注:fillfactor是常用的存储参数

5、指定空值排在前面

create index idx_contacts_name on contacts(name desc nulls first);

6、避免创建索引的长时间阻塞,可以在index关键字后面增加concurrently关键字,可以减少索引的阻塞时间

create index concurrently idx_contacts_name on contacts(name desc);

注意,重建索引时不支持concurrently ,可以新建一个索引,然后删除旧索引,另外并发索引被强制取消,可能会留下无效索引,这个索引将会导致更新变慢,如果是唯一索引,还会导致插入重复值失败。

7、修改索引

索引重命名:alter index name rename to new_name;

设置表空间:alter index name set tablespace tablespace_name;

设置存储参数:alter index name set(storage_parameter=value[,...])

重设存储参数:alter index name reset(storeage_parameter[,...])

8、删除索引

drop index if exists idx_contacts_name_old;

8、cascade会把索引和依赖索引的对象全部删除

 

标签:数据库
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号