当前位置: 首页 > 面试题库 >

的mysql,ifnull vs合并,哪个更快?

孟选
2023-03-14
问题内容

如果知道只有两个值可以候选列的结果,

ifnull(a, b) as a_or_b_1

coalesce(a, b) as a_or_b_2

将给出相同的结果。但是哪个更快?搜索时,我发现了这篇文章,说 ifnull
更快。但这是我发现的唯一文章。有什么看法吗?

提前致谢 :)


问题答案:

我的观点是您应该对使用情况进行基准测试。

我怀疑会有很大的不同。请记住,虽然一个基准可能暗示一个基准稍好一些,但随着时间的推移数据变化可能会改变结果。

还要注意,COALESCE自1992年以来就是标准SQL的一部分-我不确定IFNULL是否在任何标准中。

Adam Machanic有一篇不错的文章,介绍了对等效方案进行基准测试- 性能:ISNULL与COALESCE (在SQL
Server中)
。请注意有关获得有效测试的一些条件。



 类似资料:
  • 支持有两个线程运行查询任务,每个线程将返回作为结果,哪种数据结构将更快地合并结果? 并发链接队列 基于链接节点的无界线程安全队列。该队列对元素FIFO(先进先出)进行排序。队列的头部是在队列中存在时间最长的元素。队列的尾部是在队列中出现的时间最短的元素。在队列尾部插入新元素,队列检索操作获取队列头部的元素。当多个线程共享对公共集合的访问时,ConcurrentLinkedQueue是一个适当的选择

  • 问题内容: 如何合并结构相同的两个MySQL表? 这两个表的主键将发生冲突,因此我考虑了这一点。 问题答案: 您也可以尝试: 这允许table_1中的行取代table_2中具有匹配主键的行,同时仍插入具有新主键的行。 或者, 将使用来自表_2的相应行更新表_1中已经存在的行,同时插入具有新主键的行。

  • 问题内容: 我将使用视图优化MySQL嵌入式查询,但不确定是否会产生效果: 我想将其转换为: 我听说过SQL Server中的“索引视图”,但是我不确定MySQL。任何帮助,将不胜感激。谢谢! 问题答案: SQL Server中的索引视图通常称为“物化视图”,MySQL不支持。与其他供应商相比,MySQL的VIEW支持相当有限- 这些限制在其文档中列出。 普通视图只是准备好的SQL语句- 使用您提

  • 问题内容: 结合这两个查询的正确语法是什么? 和 我试过了: 但我收到“ UNION和ORDER BY的用法不正确”。 编辑 此外,我希望结果在一行中返回。这样我就可以访问php中的值,例如 根据西蒙的建议,我不应该使用UNION,因为我想返回一行数据 问题答案: 您不能先进入,然后再进入。 编辑 但是你可以 将ORDER BY或LIMIT应用于单个SELECT,将子句放在包围SELECT的括号内

  • 问题内容: 我想合并/合并两个表,并让它创建一个字段来标识它来自哪个表。我看到了SQL的答案,但我不需要最大值。我只需要合并两个表。这是我当前通过访问查询进行的联合查询的SQL。 SELECT [TableA]。[1As],[TableA]。[2As] UNION SELECT [TableB]。[1As],[TableA]。[2As]; 我希望这些表创建whattabl字段,并根据它来自的表来填

  • 问题内容: 使用wordpress数据库,我们有wp_options和wp_postmeta之类的表。这些按主键ID分组,然后按“ option_name”和“option_value”之类的字段分组; 因此,例如,要找出三个值,我需要执行3个不同的查询。 是否有适当的方法仅通过一个查询来完成所有这些操作? 请对此有所了解,并分享正确的方法。 (返回example.com,Example Blog