SQL 索引详解 什么是索引 拿汉语字典的目录页(索引)打比方:正如汉语字典中的汉字按页存放一样,SQL Server中的数据记录也是按页存放的,每页容量一般为4K
为了加快查找的速度,汉语字(词)典一般都有按拼音、笔画、偏旁部首等排序的目录(索引),我们可以选择按拼音或笔画查找方式,快速查找到需要的字(词)
同理,SQL Server允许用户在表中创建索引,指定按某列预先排序,从而大大提高查询速度
• SQL Server中的数据也是按页( 4KB )存放 • 索引:是SQL Server编 排数据的内 部方法
它 为SQL Server提供 一种 方法 来 编 排查询数据
• 索引页:数据库 中存储 索引的数据页; 索引页类 似 于 汉语字(词)典中按拼音或笔画排序的目录页
• 索引的作 用:通 过 使 用索引,可以大大提高数据库 的检 索速度,改 善 数据库 性 能
索引类 型 • 唯 一索引:唯 一索引不 允许两 行 具 有相 同的索引值 • 主 键索引:为表定义一个主 键将自动创建主 键索引,主 键索引是唯 一索引的特殊类 型
主 键索引要求主 键中的每个值 是唯 一的,并且不 能 为空 • 聚集索引(Clustered):表中各行 的物理顺序与键值 的逻辑(索引)顺序相 同,每个表只能 有一个 • 非聚集索引(Non-clustered):非聚集索引指定表的逻辑顺序
数据存储 在一个位置,索引存储 在另一个位置,索引中包含指向数据存储 位置的指针
可以有多个,小于 249个 索引类 型 :再次用汉语字典打比方,希望大家能 够明白聚集索引和非聚集索引这两 个概念
唯 一索引: 唯 一索引不 允许两 行 具 有相 同的索引值
如果现有数据中存在重复的键值 ,则大多数数据库 都不 允许将新创建的唯 一索引与表一起保存
当新数据将使 表中的键值