Sql server 让包含另一个索引的索引有意义吗?

Sql server 让包含另一个索引的索引有意义吗?,sql-server,indexing,Sql Server,Indexing,给定一个表(id、col1、col2),创建以下索引是否有意义: Index1(col1)不是唯一的 Index2(col1,col2)不是唯一的 我面临的是一个充满这些内容的遗留数据库 我可以安全地删除Index1吗?SQL Server和Oracle需要一个索引。是的,您可以删除索引1,如果您有Index2(col1,col2),则不需要Index1(col1),请删除Index1(col1) 如果查询只需要Index1(col1),那么Index2(col1,col2)的使用将有轻微的额外

给定一个表(id、col1、col2),创建以下索引是否有意义:

Index1(col1)不是唯一的

Index2(col1,col2)不是唯一的

我面临的是一个充满这些内容的遗留数据库


我可以安全地删除Index1吗?SQL Server和Oracle需要一个索引。

是的,您可以删除索引1,如果您有
Index2(col1,col2)
,则不需要
Index1(col1)
,请删除
Index1(col1)

如果查询只需要
Index1(col1)
,那么
Index2(col1,col2)
的使用将有轻微的额外开销,因为有额外的列,这对于维护和花费一个完整的额外索引来说是最小的


也就是说,如果这个遗留数据库运行良好,为什么要进行任何更改?

一个原因是由于维护了一个无用的索引而减少了无意义的写入和存储。。。