选择查询上的索引字段是否可以提高速度

问题描述 投票:0回答:2

我有如下查询

select amount, date, denominations, user, time, branch 
from deposits;

现在我看到我的数据库开始增长 500k+。现在,如果我在选择查询中向这些列添加索引,选择会变得更快吗?

我在互联网上看到的所有帮助都说,如果该列是过滤器的一部分,那么性能将会提高。我的问题是选择查询(没有where)是否会因为索引字段而变得更快?

mysql sql
2个回答
0
投票

由于您没有 WHERE 子句或 JOIN 子句,因此相关查询将执行全表扫描。在某些情况下,myDBR 可以使用仅索引查询,但当您获取所有行时,这将无济于事。

如果您有 500k+ 行,请问问自己是否需要所有行。如果这样做,结果将是全表扫描。


0
投票

“...选择查询(没有where)是否因为索引字段而变得更快”

简短回答:不。

长答案:如果您只获取其中的几列并且您有一个包含所有这些列的复合索引,那么它可能会更快。这是因为“覆盖”索引将小于整个表。

© www.soinside.com 2019 - 2024. All rights reserved.