Stp*_*111 8 sql database sql-server indexing
有什么理由我不应该为每个数据库表创建索引,以提高性能?似乎必须存在某些原因,否则所有表默认会自动拥有一个.
我使用MS SQL Server 2016.
Gor*_*off 17
桌子上的一个索引并不是什么大问题.您自动拥有作为主键或声明为唯一的列(或列组合)的索引.
索引有一些开销.索引本身占用磁盘和内存空间(使用时).因此,如果空间或内存是问题,那么太多的索引可能是一个问题.插入/更新/删除数据时,需要维护索引以及原始数据.这会降低更新速度并锁定表(或表的某些部分),这会影响查询处理.
每个表上的少量索引是合理的.这些应该考虑到典型的查询负载.如果索引每个表中的每一列,则数据修改会变慢.如果您的数据是静态的,那么这不是问题.但是,用索引占用所有内存可能是一个问题.