我有如下查询
select amount, date, denominations, user, time, branch
from deposits;
现在我看到我的数据库开始增长 500k+。现在,如果我在选择查询中向这些列添加索引,选择会变得更快吗?
我在互联网上看到的所有帮助都说,如果该列是过滤器的一部分,那么性能将会提高。我的问题是选择查询(没有where)是否会因为索引字段而变得更快?
由于您没有 WHERE 子句或 JOIN 子句,因此相关查询将执行全表扫描。在某些情况下,myDBR 可以使用仅索引查询,但当您获取所有行时,这将无济于事。
如果您有 500k+ 行,请问问自己是否需要所有行。如果这样做,结果将是全表扫描。
“...选择查询(没有where)是否因为索引字段而变得更快”
简短回答:不。
长答案:如果您只获取其中的几列并且您有一个包含所有这些列的复合索引,那么它可能会更快。这是因为“覆盖”索引将小于整个表。