什么时候应该在表上使用索引?
编辑:
现在我使用 firebird 2.5,但大部分时间我使用 SQL Server 2005/2008。
最佳答案
一般来说,我的索引策略是这样的(我现在只使用 SQL Server - 根据需要适应您自己的数据库系统):
VARCHAR(250)
或者什么 - 一个 好 聚类键是狭窄的、独特的、稳定的、不断增加的——类似于 INT IDENTITY
是完美的。使它成为您的聚集主键 -> 为您提供表上的第一个索引 JOIN
的好处's 或用于检查参照完整性对您的系统不可用 这就是现在。
然后:运行您的系统 - 观察和测量 - 建立基线。该应用程序是否足够快?如果是 -> 你完成了 - 回家享受你的业余时间。
如果不是:然后开始收集数据并说明应用程序速度不够快的原因。看看例如SQL Server 中的 DMV 之类的东西会告诉您性能最差的查询,或者缺少索引 DMV。分析那些。看看你可以改进什么。添加 一次一个索引 再一次:观察,测量,与您的基线进行比较。
如果您有改进 -> 保留该指数,此衡量标准是您的新基准。冲洗并重复,直到您(和您的用户)对应用程序的性能感到满意(然后回家享受您的休息时间)。
SQL Server 中的过度索引可能是 更糟比没有任何索引。不要从太多的索引开始!只立好 聚集 PK 和外键非聚集索引 - 这就是全部 - 然后观察、测量、优化和重复该循环。
关于sql - 如何决定何时在表列上使用索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11984636/