> 文章列表 > PostgreSQL (四) 索引

PostgreSQL (四) 索引

PostgreSQL (四) 索引

1.优点

  • 创建唯一索引,保证数据的唯一性
  • 加快数据的查询速度
  • 建立索引可以加快表与表之间的连接
  • 为用来排序或者是分组的字段添加索引可以加快分组和排序顺序

2.原则

序号 原则
1 选择唯一性索引
2 为经常需要排序、分组和联合操作的字段建立索引
3 为常作为查询条件的字段建立索引
4 限制索引的数目
5 尽量使用数据量少的索引(如性别字段,一般只有"男"或"女",就没有必须要使用索引)
6 尽量使用前缀来索引
7 删除不再使用或者很少使用的索引
8 最左前缀匹配原则,非常重要的原则
9 =和in可以乱序
10 尽量选择区分度高的列作为索引
11 索引列不能参与计算,保持列“干净”
12 尽量的扩展索引,不要新建索引

3.索引的分类

3.1.B-tree

适合按照顺序存储的数据,比如使用比较运算符的数据, 适合建立一个索引.
如:

  • <
  • <=
  • =
  • >=
  • BETWEEN
  • IN
  • IS NULL
  • IS NOT NULL

大部分的数据都可以使用该索引

3.2.Hash

用于处理比较简单的等于=符号的比较.

3.3.GiST

广义搜索树。GiST 索引允许构建通用的树结构。GiST 索引可用于索引几何数据类型和全文搜索。

3.4.GIN倒排索引

适合 array, hstore, json 和 range类型的数据, 多个值存储在单个列中时,GIN 索引最有用.

3.5.BRIN

9.5 版本新增的索引类型, 允许在非常大的表上使用索引, 常用于具有线性排序顺序的列,如日期列。

4.索引类型

4.1.单列索引

create index idx_table_name on table_name(name)

4.2.组合索引

create index idx_table_name on table_name(name,comment_info)

4.3.唯一索引

create unique index unique_idx on table_name(table_id)

5.索引的操作

5.1.重命名

alter index old_idx rename to new_idx

5.2.删除索引

drop index old_idx

服务器知识