据我了解:
聚簇索引按索引对数据进行物理排序,因此如果您使用Surname作为聚簇索引,当您执行select*时,您将按字母顺序获取姓氏.
非聚集索引不会对您的数据库进行物理重新排序,而是创建一种按您选择的列排序的查找表.
它在我的书中说,你可以有16列聚簇索引.我原以为你只能选择1列,因为它是通过物理重新排序数据库的?或者,如果第一列包含重复项,则为多列?
是不是总是使用非聚集索引更快,因为SQL不必随意改变数据?
聚簇索引按索引对数据进行物理排序,因此如果您使用Surname作为聚簇索引,当您执行select*时,您将按字母顺序获取姓氏.
这不一定是真的.除非您提供ORDER BY查询,否则无法保证订单.
它在我的书中说,你可以有16列聚簇索引.我原以为你只能选择1列,因为它是通过物理重新排序数据库的?或者,如果第一列包含重复项,则为多列?
它按字典顺序排序:首先是第一列,然后是第二列(如果是第一列的连接等).
是不是总是使用非聚集索引更快,因为SQL不必随意改变数据?
聚簇索引确实有一些开销,INSERT因此有时建议使表需要快速DML非聚簇(如日志表等).
但是,聚簇索引允许更快地搜索群集密钥,从而加快对该密钥的连接.