大话数据库索引

什么是索引呢?
就像是字典前边的拼音或者偏旁一样,起到了快速查找的功能。
数据少没事,但是现在是大数据时代,数据量非常多,没有有索引那么就会速度十分缓慢。
索引类型
数据库索引:数据库索引是一种提高数据库查询速度的数据结构。索引可以快速定位,而不需要每次查询数据库表中的所有数据。
聚簇索引:是一种顺序结构与数据存储物理结构一致的一种索引,并且一个表的聚簇索引只能有唯一的一条。就像去图书馆找一本书一样,范围逐渐变小,很容易就可以找到。

我们给IndexTestTable表的Name字段添加一个非聚簇索引:
CREATE NONCLUSTERED INDEX IndexTestTable_index_name ON IndexTestTable(Name);
给IndexTestTable表的UniqueCode字段添加一个聚簇索引:
CREATE CLUSTERED INDEX IndexTestTable_index_uniquecode ON IndexTestTable(UniqueCode)
数据库索引类型
主键索引:就是primary key(’列名’);
唯一键索引:create unique index stusno on student(sno);
什么时候加索引
比如我们sql查询语句查询一个东西的时候,我们可以给查询条件字段加上索引,可以增加效率。
索引实现方式,也就是数据结构
B+树:ORACLE默认的实现方式,复合索引用的就是。
散列索引:就是根据对应的散列码来找到最终的索引项的技术。很少使用,基本是散列文件组织用。
位图索引:是一种针对多个字段的简单查询设计的一种特殊索引,范围值很小,需要字段的值种类很少。
我们最多用的就是B+树,性能很好,用于范围查询和单值查询,特别是范围查询一定要B+树。
HASH的对单值查询会比B+快点,但是ORACLE不支持。
位图一定要字段数值样数少的组合查询。
索引使用原则
小表不用。
不要太多索引,因为维护消耗性能。
复合索引要看情况用,可以考虑全部建立索引。
对经常使用范围查询的字段,可以考虑聚簇索引。
不常用的列,逻辑性列,大字段列避免使用索引。

猜你喜欢

转载自blog.csdn.net/qq_42784105/article/details/82660253