Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 选择更少的列是否会加快我的查询速度?_Mysql_Sql_Query Optimization - Fatal编程技术网

Mysql 选择更少的列是否会加快我的查询速度?

Mysql 选择更少的列是否会加快我的查询速度?,mysql,sql,query-optimization,Mysql,Sql,Query Optimization,我已经看到了几个问题,将select*与select by all columns进行了比较,但选择的列数越少,选择的列数越多,情况又如何呢 换言之,是: SELECT id,firstname,lastname,lastlogin,email,phone 比以下速度快得多: SELECT id,firstname,lastlogin 我意识到通过系统和应用程序传输的更多数据会有细微的差异,但这是总的数据/负载差异,而不是查询成本。我相信,单元格中较大的数据也会产生相同的效果-我只是在尝试优

我已经看到了几个问题,将select*与select by all columns进行了比较,但选择的列数越少,选择的列数越多,情况又如何呢

换言之,是:

SELECT id,firstname,lastname,lastlogin,email,phone
比以下速度快得多:

SELECT id,firstname,lastlogin
我意识到通过系统和应用程序传输的更多数据会有细微的差异,但这是总的数据/负载差异,而不是查询成本。我相信,单元格中较大的数据也会产生相同的效果-我只是在尝试优化我的查询,因为我必须在某个时刻加载所有数据


当我的管理员用户登录时,我将把整个用户数据库加载到缓存中,但我可以预先只查询关键数据以节省一些执行时间,也可以获取所有数据——如果结果大致相同的话。我知道行数越多,查询执行的时间就越长,但在我的查询中选择的值越多呢?

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

有两件事需要考虑:

如果附加字段非常大,那么这可能是性能上的巨大差异。 如果有一个索引覆盖了实际需要的列,那么该索引可以用于查询。这可以加快数据库中的查询速度。
不过,一般来说,建议是向应用程序返回您想要的列。如果有复杂的处理,你应该考虑在数据库中,而不是应用程序。

这是否回答了你的问题:它非常接近,但是,当他提到不值得返回到同一个页面去重新摄取相同的数据/做同样的查询时,他暗示我认为我们将等待它完成,在我的情况下,这将是停机时间,在第一次查询之后,我的应用程序有一些时间可以消磨,它很可能会在登录时利用空闲时间发出异步请求,因此总查询长度与我无关-只有我可以保存的内容,如果事先有任何内容…始终命名并正确限定,实际需要返回的所有列。请提供SHOW CREATE TABLE。数据类型可能很重要。将整个用户数据库加载到缓存中-这通常是一个错误;请提供详细信息。很抱歉花了这么长时间回复-我确实需要所有数据,但只有部分数据在前面是视觉上至关重要的,我希望尽可能优化我的开放视图的感知速度和响应速度。所以,当你说需要时——好吧,我想要所有的,但这个问题是关于什么时候发生,以及在多少查询方面——我只是想从我的应用程序获得最佳响应,所以我从最初的DB读取开始。我想知道的是,如果你在经过的时候选择更少的单元格,扫描DB的每一行的过程是否会更快。。。