我们为什么需要索引?
数据库的数据量一旦大起来,可以想象查询时如大海捞针一般,需要很长时间才能找到对应的数据。如何提高大数据量时的查询效率呢?一谈到这种话题,可以很自然联想到冒泡排序、二分法等等,如何实现、哪种更好,还是挺让人头痛的问题。
还在Oracle已经为我们解决了这种头痛,我们只需要使用Oracle提供的“索引”就好。为字段添加了索引,在查询时则会通过特定算法来提高查询效率。
索引的优缺点
既然加了索引,就可以提高查询效率,那是不是我们给表的每个字段都加上索引,就一劳永逸了呢?。当然不是,索引虽好,但也有弊端。
索引的优点:
- 1.可以加快检索数据的速度
- 2.使用唯一索引可以确保每行数据的唯一性
- 3.今天加快表与表之前连接查询的速度
- 4.可以明显减少分组查询和排序查询的时间
索引的缺点:
- 1.索引需要占用额外的物理空间
- 2.增、删、改数据时,需要动态的进行维护,降低DML操作的速度
那么我们什么时候,在哪里建议使用索引呢?
- 1.数据量小的表不需要建索引(量数据十万内,取决于服务器配置)。
- 2.经常查询的数据值的记录目数,少于表的总目数的15%。
- 3.大部分列值都不重复的列可以建索引。
- 4.基数大的列适合建B数索引,基数小的列适合建位图索引。