索引概念

索引技术

                                                                                                         总结于:2013-09-28

索引技术:就像每本书中的目录一样、或者某个术语对应的页面一样、索引文件由索引项组成、索引项由查找码和查找码对应的记录所在的物理地址组成。

具体概念:是一种快速文件访问技术(因为数据库中数据一般都是以文件的形式存放在磁盘上的、比如数据库中的表实际是以文件形式存储在磁盘上的)、他将一个文件的每个记录在某个或者某些域(或称为属性)的取值与该记录的实际物理地址直接联系起来、提供了一种根据记录域的取值快速访问文件记录的机制。

索引技术的分类:

总体上分为两类(1)有序索引技术、也称索引文件机制(2)散列技术、也称哈希索引机制。

有序索引技术、是使用索引文件来实现记录域与文件记录在物理存储地址之间实现的映射、这里的记录域就是查找码、索引文件由索引记录组成、每个索引记录中都存放着一个索引项、其中记录了某个特定的查找码和具有该值的数据文件记录的物理地址。这样在查找的时候、会首先到索引文件中查找符合条件的索引记录中的对应的索引项中对应的查找码、根据查找码来确定要查询的数据在数据文件中实际物理存储地址的地址、以便快速高效的查询到想要的结果。

散列索引、是通过散列(Hash)函数来实现记录域取值到记录物理存储地址之间的直接映射关系的。当访问数据文件中查找码为s的记录的实际物理存储地址的时候、将s作为散列函数h的输出入、计算的出的散列函数输出值h(s)作为目标记录在数据文件中的物理地址。

有序索引细分为:聚集索引、非聚集索引、稠密索引、稀疏索引、主索引、非主索引、单层索引、多层索引。

和索引有关的sql语法:

1、创建索引:

create [ unique] [ clustered ] [nonclustered ] index <索引名> on <表明>( <列名> [ <顺序> [ , <列名> ] [ <顺序> ] …] ) 注:

(1)   unique:表示要创建的索引是唯一索引。

(2)   clustered :表示创建的索引是聚集索引(sqlserver中的写法、oracle中没有对应的写法)

(3)   nonclustered:表示创建的索引时非聚集索引。

(4)   “顺序”包括 ASC(升序)和DESC(降序),表示索引键值的排序顺序、默认是ASC    。

(5)   如果没有指定索引类型、默认的要创建的索引时非聚集索引。

exp:create unique clustered index index_id on table student ( sno desc)

索引使用注意事项:

            索引可以提高查询效率、但是这个提高是有代价的、它需要占用额外空间、而且会影响数据的增删改的效率、索引的建立应该遵循以下原则:

1、经常在查询过中作为条件使用的列

2、频繁进行分组和排序的列

3、一个列的值域很大的时候

4、如果待排序的列有多个、则应在这些列上建立复合索引



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值