PostgreSQL的INDEX索引详解
  • 作者:admin
  • 发表时间:2021-04-30 07:51
  • 来源:未知

本文主要介绍PostgreSQL INDEX的详细讲解,有很好的参考价值,希望对大家有所帮助。和边肖一起来看看

之前总结了PostgreSQL的序列相关知识,今天总结索引。

众所周知,数据库索引最重要的作用是提高数据检索的速度,但是索引越多越好。因为索引会增加数据库的存储空间,所以查询数据需要更多的时间。

1.创建索引

SQL语句如下:

CREATE INDEX idx_commodity

关于商品//表名

使用btree //是用b树实现的

(commodity _ id);//函数的特定列

2.删除索引

1DROP指数idx _ commodity

3.添加索引的优点:

创建索引可以大大提高系统的性能。

第一,主要原因是可以大大加快数据的检索速度;

其次,通过创建唯一索引,可以保证数据库表中每一行数据的唯一性;

第三,可以加快表与表之间的连接,特别是在实现数据的引用完整性方面;

第四,在使用分组排序子句进行数据检索时,也可以显著减少查询中分组排序的时间;

第五,通过使用索引,我们可以在查询过程中使用优化的隐藏设备来提高系统性能。

4.添加索引的缺点:

首先,创建和维护索引需要时间,时间会随着数据量的增加而增加;

第二,索引占用物理空间。除了数据表占用数据空间,每个索引也占用一定的物理空间。'

再次,在添加、删除和修改表中的数据时,需要动态维护索引,降低了数据维护的速度。

5.指数的选择

通常,您应该在这些列上创建索引:

第一,可以在经常需要搜索的栏目上加快搜索速度;

第二,以列为主键,加强列的唯一性,组织表中数据的排列结构;

第三,在经常用于连接的列中,这些列主要是外键,可以加快连接速度;

第四,对经常需要按范围搜索的列创建索引,因为索引已经排序,其指定范围是连续的;

第五,对经常需要排序的列创建索引,因为索引已经排序,所以查询可以利用索引的排序来加快排序查询时间;

第六,在WHERE子句的列上创建一个索引,以加快条件的判断。

一般来说,不应创建索引的这些列具有以下特征:

首先,不应该为查询中很少使用或引用的列创建索引。这是因为,由于很少使用这些列,所以有索引或没有索引,不能提高查询速度。相反,由于增加了索引,降低了系统的维护速度,增加了空间需求。

其次,不应该将索引添加到数据值很少的列中。这是因为这些列的值很少,结果集中的数据行占了表中数据行的很大一部分,也就是需要在表中搜索的数据行的很大一部分。增加索引并不能明显加快检索速度。