【问题标题】:IFNULL in mysql speed issuemysql速度问题中的IFNULL
【发布时间】:2013-03-02 08:05:27
【问题描述】:
select IFNULL(col1, (select col2 from table2 where ...)) from table1 

如果 table1 没有空值,它会为 table2 运行选择吗?这是一个速度问题。我没有合适的数据库来检查。

【问题讨论】:

  • 你的内部查询需要多少时间?
  • 我只是在设计数据库。我没有可以测试沉重桌子的支架。
  • 你能在table2的主键中设置col2吗?因为数据库会有主键索引,这将提高性能
  • 我不需要提高性能。我想知道它是如何工作的。我无法检查它,因为我没有足够大的本地数据库来得出结论。

标签: mysql database-performance ifnull


【解决方案1】:

只有当 col1 为 null 但每次都为 null 时才会执行子查询。所以如果 col1 中有很多 null 值,这会变得很慢。

以下方法可能更适合您:

select coalesce(col1,col2) from table1,table2 
                     where (relationship between both tables)

【讨论】:

    猜你喜欢
    • 2011-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-14
    • 2014-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多