我有一张约有37种索引的桌子。那会不会被认为太多了?关于索引的一些最佳实践是什么?
编辑:它是仓储数据,每天更新与新的交易。有4700万行。其中3项指标是非常必要的。其他34~是用于加速查询的“where”子句索引。
发布于 2012-03-22 20:39:24
比你需要的多一个索引就是太多了。少一个就太少了。
我试着去找一个有太多索引是个问题,却什么都找不到的例子
您知道,如果插入太慢,那么就会有太多的插入,而用于读取的索引没有足够快的速度来弥补它。
发布于 2012-03-22 20:53:28
没有“神奇的数字”。0之后的每个索引都会稍微减慢insert/更新,但这不应该阻止您创建所需的索引。37确实听起来很多,确保你没有使用不必要的索引。例如,如果你在A,B列上有一个索引,你就不需要在A上有一个单独的索引,或者如果你对A,B,C,D有一个索引,那么你就不需要A,B,C,C上的另一个索引,而且如果在A,B,C,E上有另一个索引,你可能不会获得太多的收益。
发布于 2012-03-22 20:40:57
创建索引是一种权衡。您必须确定维护索引的开销(从而减缓DML操作)和索引消耗的额外空间是否值得从使用索引的查询中获得性能增益。这又取决于查询的好处和这些查询的重要性。
在这个成本效益方程中,表上的索引数与此无关--每个索引都应该单独考虑(尽管特定索引的性能效益可能取决于查询是否可以使用不同的索引)。
https://softwareengineering.stackexchange.com/questions/141052
复制相似问题