当我们在列上创建聚集索引CIX_FirstNames时,比如FirstNames,那么 SQL Server 内部实际发生了什么?
我读过聚集索引创建数据的副本。
那么,sql server 是否会创建一个新的索引表IndexTable并将表中的所有 FirstNames 复制到IndexTable中,并且当搜索到 firstname 时,它会从索引表中显示它吗?
这是聚集索引的实际工作吗?
当我们在列上创建聚集索引CIX_FirstNames时,比如FirstNames,那么 SQL Server 内部实际发生了什么?
我读过聚集索引创建数据的副本。
那么,sql server 是否会创建一个新的索引表IndexTable并将表中的所有 FirstNames 复制到IndexTable中,并且当搜索到 firstname 时,它会从索引表中显示它吗?
这是聚集索引的实际工作吗?
这是一个太大的话题,无法在这里快速回答 - 你需要让自己:
Microsoft SQL Server 2008 内部结构
它非常详细地涵盖了这一切。
但只是简单地说:不!创建聚集索引不会重复数据!你从哪里得到那个的??
聚集索引所做的是重新排序数据(根据键),聚集索引的叶级节点是数据页——但它们只存在一次。
更多感兴趣的资源:
索引视图将复制数据。
“这样做的缺点是索引视图是基础表中数据的完整副本[...]”