【问题标题】:Performance full select vs distinct select [duplicate]性能全选与不同选择[重复]
【发布时间】:2014-01-22 04:57:34
【问题描述】:

我问自己是否喜欢全选

SELECT('*') FROM table ...

更高效
SELECT('id,bla,blub') FROM table

反之亦然(有大量行且没有连接或其他东西)。 有没有人对此进行基准测试/测试?我认为可以,因为它就像“给我一切”,它不需要“搜索”正确的列(而且我也得到了我想要的列)。另一方面,如果我指定了列,则需要提供的数据更少。那么什么是/可能会更高效?

【问题讨论】:

  • 你真的是指 select(' * ') 而不是 select * 吗?这不是一回事。 select (' * ') 将为每个存在的行显示一个*
  • 另外(对于 MrSimpleMind 所写的):在列列表周围加上括号是没有任何用处的。顺便说一句:查询将为每一行返回*,第二个查询将为每一行返回(相同的)字符序列id,bla,blub
  • 对不起,由于我使用的框架,语法可能有点错误:) 当然 * 应该返回所有行,而第二个应该只返回这些行的列。

标签: mysql sql


【解决方案1】:

嗯,要回答这个问题,我们必须弄清楚我们在谈论性​​能时的意思。

获取“一些”额外的列通常不会在性能上花费太多。但这会以带宽的形式产生成本,这就是为什么你总是应该将你的问题限制在需要的范围内(如果你没有任何特殊的想法的话)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-13
    • 2010-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-08
    • 2014-01-04
    相关资源
    最近更新 更多