索引
索引:数据库索引类似于图书后面的索引,能快速定位到需要查询的内容(就如同找一本红楼梦,根据索引来找,首先定位到文学类的书籍,再依次的望小的书籍类别下定位查找。而没有索引则会从图书馆的第一本书开始找到最后一本书。这样当数据量比较大的时候,索引会大大加快查询速度)
索引需要占用一定的存储空间,当基本表更新的时候,索引也要进行相应的维护,因此会增加数据库的负担所以要根据实际情况来确定要不要创建索引(一般是数据量小不用创建、经常做插入,删除,修改尽量少创建索引、数据重复且分布平均的字段也不建议创建索引,数据量大则创建)
建立索引的语句:
create index stusno
on student(sno);
create index coucno
on course(cno);
create index scno
on sc(sno asc,cno desc);
修改索引:
alter index scno
rename to scsno
删除索引:
drop index stusno
常见索引:
顺序文件上的索引、B+树索引、散列(hash)索引、位图索引等
1、顺序文件上的索引:是针对按指定属性值升序或降序存储的关系,在该属性上建立一个顺序索引文件,索引文件有属性值和相应的元组指针组成
2、B+数索引:将索引属性组织成B+树形式,B+树的叶子节点为属性值和相应的元组指针(B+树索引有动态平衡有点)
3、散列索引:建立若干个桶,将索引属性按其散列函数值映射到相应桶中,桶中存放索引属性值和相应的元组指针(散列索引具有查找速度快的有点)
4、位图索引:用位向量记录索引属性值中可能出现的值,每一个向量对应一个可能值