【问题标题】:SELECT a FROM T + Select b from T, or SELECT a,b FROM T? H2 Database从 T 中选择 a + 从 T 中选择 b,或从 T 中选择 a、b? H2 数据库
【发布时间】:2011-11-04 11:33:47
【问题描述】:

使用H2数据库哪个更快?

SELECT a FROM T 
 and after 
Select b from T 

SELECT a,b FROM T

【问题讨论】:

  • 第一个不是有效的 SQL 语句
  • 我的意思是连续做两个
  • 这些查询中没有WHERE 子句?
  • 是否有 WHERE 子句是否重要?如果是这样,则两者的 where 子句相同,基于第三个元素,例如 WHERE c == id...
  • 关系 DBMS 的一般规则:一个包含很多行的查询通常比包含很多行的查询要快。

标签: sql database h2 sqlperformance


【解决方案1】:

我认为第二个,对于这个查询

SELECT a,b FROM T

在第一个查询中,数据库引擎必须从表 2 中获取数据并连接在一起。 所以效率很高。

【讨论】:

  • 如果表非常宽,但ab 上的索引都很窄怎么办?
【解决方案2】:

这是典型的 SQL 答案:IT DEPENDS :)

我对 H2 了解不多,但是您的数据是如何索引和分布的? a 和 b 的数据类型是什么(一宽一窄)?客户端应用程序是否与您的数据库在同一硬件上,或者是否涉及网络延迟?是不是一直都需要去取a和b,还是a或者b是可以缓存的相对静态的数据?

简而言之,我不确定您能否提出适用于所有情况的一般经验法则;我倾向于后者(SELECT a,b FROM table),但您必须测试并查看。

【讨论】:

    猜你喜欢
    • 2016-09-23
    • 1970-01-01
    • 1970-01-01
    • 2012-07-29
    • 1970-01-01
    • 1970-01-01
    • 2013-03-31
    • 2013-11-07
    • 1970-01-01
    相关资源
    最近更新 更多