题
为正在求和的列创建索引是否比没有索引更快?
解决方案
对不起,目前尚不清楚你的要求。
你是问,这将加快查询,如
SELECT product, sum(quantity) FROM receipts
GROUP BY product
如果在添加量的索引?
如果这是个问题,则答案是否定的。一般来说,指数是有帮助的,当你需要找到刚才在许多几排;在这里你需要的所有行,所以指数没有帮助。
有一个不起眼的例外(适用所以很少最DB优化可能不打扰实现这一招)。如果查询恰好是
SELECT sum(foo) FROM bar
,其中存在于foo的指标,酒吧是很多列的表,可以在完整的索引读取,招致比如果你读了下面的表更小的打击,并直接从得到的答案指数 - 永远不必接触“真正的”表在所有!这是一个相当罕见的情况,但是,你将要测试你的优化器知道靠这个太之前做到这一点。
其他提示
没有。指标通过限制需要多少检查,改进搜索。一个聚集函数(计数,最大值,最小值,求和,平均)具有通过在一列中的所有项运行而不管
如果索引覆盖,它通常会更快。如何更快的将通过在表与索引数列数之间的差额进行确定。此外,如果存在任何过滤标准可能更快。
我发现索引使用此查询时在其中的柱(这里PRODUCTID)帮助:
选择的productid,总和(数量)FROM收据WHERE的productid = 1 GROUP BY的productid
从45秒去几乎是一瞬间我的一个疑问的,一旦我添加索引。
不隶属于 StackOverflow