本文主要介绍PostgreSQL INDEX的详细讲解,有很好的参考价值,希望对大家有所帮助。和边肖一起来看看
之前总结了PostgreSQL的序列相关知识,今天总结索引。
众所周知,数据库索引最重要的作用是提高数据检索的速度,但是索引越多越好。因为索引会增加数据库的存储空间,所以查询数据需要更多的时间。
1.创建索引
SQL语句如下:
CREATE INDEX idx_commodity
关于商品//表名
使用btree //是用b树实现的
(commodity _ id);//函数的特定列
2.删除索引
1DROP指数idx _ commodity
3.添加索引的优点:
创建索引可以大大提高系统的性能。
第一,主要原因是可以大大加快数据的检索速度;
其次,通过创建唯一索引,可以保证数据库表中每一行数据的唯一性;
第三,可以加快表与表之间的连接,特别是在实现数据的引用完整性方面;
第四,在使用分组排序子句进行数据检索时,也可以显著减少查询中分组排序的时间;
第五,通过使用索引,我们可以在查询过程中使用优化的隐藏设备来提高系统性能。
4.添加索引的缺点:
首先,创建和维护索引需要时间,时间会随着数据量的增加而增加;
第二,索引占用物理空间。除了数据表占用数据空间,每个索引也占用一定的物理空间。'
再次,在添加、删除和修改表中的数据时,需要动态维护索引,降低了数据维护的速度。
5.指数的选择
通常,您应该在这些列上创建索引:
第一,可以在经常需要搜索的栏目上加快搜索速度;
第二,以列为主键,加强列的唯一性,组织表中数据的排列结构;
第三,在经常用于连接的列中,这些列主要是外键,可以加快连接速度;
第四,对经常需要按范围搜索的列创建索引,因为索引已经排序,其指定范围是连续的;
第五,对经常需要排序的列创建索引,因为索引已经排序,所以查询可以利用索引的排序来加快排序查询时间;
第六,在WHERE子句的列上创建一个索引,以加快条件的判断。
一般来说,不应创建索引的这些列具有以下特征:
首先,不应该为查询中很少使用或引用的列创建索引。这是因为,由于很少使用这些列,所以有索引或没有索引,不能提高查询速度。相反,由于增加了索引,降低了系统的维护速度,增加了空间需求。
其次,不应该将索引添加到数据值很少的列中。这是因为这些列的值很少,结果集中的数据行占了表中数据行的很大一部分,也就是需要在表中搜索的数据行的很大一部分。增加索引并不能明显加快检索速度。