首页 > 解决方案 > 选择更少的列会加快我的查询速度吗?

问题描述

我已经看到了几个比较 select * 以明确选择所有列的问题,但是选择的列少与多怎么办。

换句话说,就是:

SELECT id,firstname,lastname,lastlogin,email,phone

比以下速度快得可以忽略不计:

SELECT id,firstname,lastlogin

我意识到通过系统传输到应用程序的更多数据会有小的差异,但这是总数据/负载差异,而不是查询成本(我相信单元格中的较大数据无论如何都会产生相同的效果) - 我只是想优化我的查询,因为无论如何我都必须在某个时候加载所有数据......

当我的管理员用户登录时,我会将整个用户数据库加载到缓存中,但我可以预先只查询关键数据以节省一些执行时间,或者只是获取所有内容 - 如果结果大致相同。我知道更多的行等于更长的查询执行时间 - 但是我的查询中选择的更多值呢?

标签: mysqlsqlquery-optimization

解决方案


在大多数情况下,唯一的区别是这些字段的数据稍大,获取它们的时间更长。

有两点需要考虑:

  1. 如果附加字段非常大,那么这可能是性能上的巨大差异。
  2. 如果存在涵盖您实际需要的列的索引,则该索引可用于查询。这可以加快数据库中的查询。

不过,一般来说,建议是将您想要的列返回给应用程序。如果有复杂的处理,您应该考虑在数据库而不是应用程序中进行。


推荐阅读