【发布时间】:2020-02-05 07:20:30
【问题描述】:
我已经看到几个问题比较 select * 以明确选择所有列,但是选择的列少与多呢?
换句话说,就是:
SELECT id,firstname,lastname,lastlogin,email,phone
比可以忽略不计的快:
SELECT id,firstname,lastlogin
我意识到通过系统传输到应用程序的更多数据会有微小的差异,但这是总数据/负载差异,而不是查询成本(单元格中的更大数据会产生相同的效果无论如何我相信) - 我只是想优化我的查询,因为无论如何我都必须在某个时候加载所有数据......
当我的管理员用户登录时,我会将整个用户数据库加载到缓存中,但我可以只查询关键数据以节省一些执行时间,或者只获取所有内容 - 如果它大致可以相同的。我知道更多的行等于更长的查询执行时间 - 但是我的查询中选择更多的值呢?
【问题讨论】:
-
这能回答你的问题吗:stackoverflow.com/questions/25093187/…
-
非常接近,但是,当他提到返回同一页面重新摄取相同的数据/执行相同的查询不值得时,他暗示我认为我们会等待它完成,在我的情况下,这将全部停机,在第一次查询之后,我的应用程序有一些时间可以杀死,它很可能在登录时利用空闲时间发出异步请求,所以总查询长度是与我无关 - 只有我可以预先保存(如果有的话)......
-
始终命名并正确限定您实际希望返回的所有列。
-
请提供
SHOW CREATE TABLE。数据类型可能很重要。 -
"将整个用户数据库加载到缓存中" -- 这通常是一个错误;请提供详细信息。
标签: mysql sql query-optimization