对于数据库表上的索引,我的理念是它们是查询数据库时编写任何代码的必要部分。您不能引入新的查询或更改查询而不分析索引的影响。
因此,我尽力将我的索引保持在所有环境之间同步,但老实说,我没有很好地自动化这个过程。这是一种有点混乱的手动过程。
我定期审查索引统计信息并删除不必要的索引。我通常通过创建一个删除脚本来完成这个操作,然后将其复制回其他环境。
但是偶尔会在正常流程之外创建和删除索引,很难看到差异在哪里。
我发现简单的数字索引名称非常有帮助,例如
idx_t_01
idx_t_02
t是表的简称。当我试图在所有涉及的列上巧妙处理时,索引维护变得不可能。
idx_c1_c2_c5_c9_c3_c11_5
区分这样的索引太难了。
有没有一种非常好的方法将索引维护集成到源代码控制和开发生命周期中呢?