SSM+shiro等我们的日志

PostgreSQL学习笔记(六)索引

2015-10-11  本文已影响1019人  bruce_wu

索引是对数据库中一列或几列的数据按照特定的数据结构进行排序保存的一种方式。使用索引可以加快数据库查询或排序时的速度。如果不使用索引那么查询数据时就会进行全表扫描也就是每条数据读取一遍看是不是要找的值,而使用索引可以快速找到要找的数据,不用扫描所有数据。

当然,索引也有缺点,所以我们不能在表中随意的创建索引

  1. B-tree索引适合处理那么些能够按照顺序存储的数据,它适合用于比较操作时经常用到的字段。
  2. Hash索引只能处理简单的等于比较。当一个字段涉及到使用“=”操作符进行比较时查询规划器会考虑使用Hash索引。
  3. GiST索引不只是一种索引,还是一种架构,可以实现很多不同的索引策略。所以,GiST索引可以使用的特定操作符类型高度依赖于索引策略(操作符类)。
  4. GIN索引是反转索引,它可以处理包含多个键的值(比如数组)。和GiST索引类似,GIN支持用户定义的索引策略,GIN索引可以使用的特定操作符类型根据索引策略不同而不同。
create index idx_name on table_name(column_name); #创建B-tree索引
create index idx_name on table_name using hash (column_name); #创建Hash索引
drop index idx_name; #删除索引
1、索引并不是越多越好,索引太多会影响insert,delete,update的性能。
2、对于经常查询的字段应该建立索引
3、避免对经常更新的表进行过多的索引
4、数据量很小的表最好不要使用索引,由于数据量少,扫描表的时间可能比查询索引时间要短,索引没有效果
5、不要在不同值少的列上建立索引,例如 表示性别的字段一般只有 ‘男’和‘女’两个不同值,如果建立索引会严重降低更新速度。
6、在频繁进行排序或分组的列上建立索引时,如果待排序的列有多个,可在这些列上建立联合索引。
上一篇下一篇

猜你喜欢

热点阅读