Sql 列索引的最佳db策略是什么?
两个例子是:Sql 列索引的最佳db策略是什么?,sql,sql-server,database-design,query-optimization,Sql,Sql Server,Database Design,Query Optimization,两个例子是: 将在查询where子句(where Name=“xtz”)中显示的列 要在查询中对其排序的列 这是正确的吗?还有其他重要的用例吗 SQL Server能否根据使用模式推荐要编制索引的字段?这些是编制索引的唯一原因 因为“使用模式”很难量化——而且它是多种多样的——所以不可能对索引做出全面的陈述 大量更新(或删除)的索引成本大于收益 很少使用的索引可能比使用它的少数查询维护成本最高 它需要积极的实验来确定索引的组合是否适合数据库的当前使用模式。这意味着查看查询执行计划以查看使用了什么
SQL Server能否根据使用模式推荐要编制索引的字段?这些是编制索引的唯一原因 因为“使用模式”很难量化——而且它是多种多样的——所以不可能对索引做出全面的陈述 大量更新(或删除)的索引成本大于收益 很少使用的索引可能比使用它的少数查询维护成本最高
它需要积极的实验来确定索引的组合是否适合数据库的当前使用模式。这意味着查看查询执行计划以查看使用了什么,查看慢速查询以查看可能缺少的内容。您将知道您的性能是否不够好 你提到的事情已经是解决方案的一部分了。除此之外,我还要补充:
- 在子表中的任何外键列上放置索引
Marc排序和查询是设计时几乎所有索引的“必须”。对于一个表,您必须小心使用哪一个索引作为集群索引,以免引入插入/更新延迟
显然,您将发现是否需要更多索引来跟踪生产中的系统的性能,并检测哪些sql命令的执行时间更长。如果查询速度慢,最好开始添加索引。对于大多数中小型数据库,花时间找出要尽早应用的索引并不能很好地利用您的时间。对于更新次数最少、冗余数据较少的列,应将其设置为索引。
若并没有存储问题,那个么数据库应该被大量索引。你们应该几乎总是索引外键(主键是自动索引的,而FK不是)。FK通常用于联接,因此应该编制索引。外键上的索引也可以加快检查外键约束的速度,例如,如果删除了引用的行。