阅mssql 联机丛书 关于索引的疑问

jennelee 2010-06-29 03:51:25
文章中提到这么一句话
“非聚集索引将聚集索引键作为指针存储,因此时聚集索引键尽可能小很重要。”
疑问在于这个“小”指什么,
1、如果是聚集索引占用的空间,那我建聚集索引时好像没有给我选占用空间的多少
2、如果是聚集索引键包含的数据列的数量,这个个人认为说的通,但没有理论的依据,腰板不直。

麻烦各位大侠解决下我的疑问
...全文
47 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
feilniu 2010-06-29
  • 打赏
  • 举报
回复
3楼说得很详细。

另可参看:关于聚集索引选择方案的疑问
jennelee 2010-06-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xman_78tom 的回复:]
“小”指的是聚集索引键的大小(size),也就是聚集索引键包含的所有表列大小的总和。
如果聚集索引键包含 id 列(int 类型),则聚集索引键的大小为 4 个字节(int 类型占用 4 个字节)。
如果聚集索引键包含 fname 列(varchar(10) 类型)和 lname 列(varchar(20) 类型),则聚集索引键的大小最大为 30 个字节。

显然,聚集索引键小,非聚集索引……
[/Quote]
xman_78tom 2010-06-29
  • 打赏
  • 举报
回复
“小”指的是聚集索引键的大小(size),也就是聚集索引键包含的所有表列大小的总和。
如果聚集索引键包含 id 列(int 类型),则聚集索引键的大小为 4 个字节(int 类型占用 4 个字节)。
如果聚集索引键包含 fname 列(varchar(10) 类型)和 lname 列(varchar(20) 类型),则聚集索引键的大小最大为 30 个字节。

显然,聚集索引键小,非聚集索引所使用的叶级索引页数量便少,非聚集索引的 B-TREE 层级便少,使用非聚集索引的查询操作所需的 i/o 就少,性能便高。
jennelee 2010-06-29
  • 打赏
  • 举报
回复
同帮顶
wujinyuan 2010-06-29
  • 打赏
  • 举报
回复
占位,帮顶,学习

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧