如果在每个SELECT列上使用COALESCE,那么MySql的开销是多少,因为我厌倦了在我的VB应用程序中出现DBNUll错误。我应该担心吗?
Select COALESCE(price_small_breed, 0), COALESCE(discount_small_breed, '') From tblServicePrice Where service_id = .... just some example found on net
提前致谢
答案 0 :(得分:3)
不,你不应该担心开销。
我对coalesce()
所知道的唯一性能问题是某些版本的 SQL Server (不是MySQL!),其中第一个参数在非NULL时会被评估两次。这是一个很昂贵的问题,例如子查询。
但是,一般而言,与将数据移入和移出数据库的成本相比,内置函数的开销最小。
在更复杂的查询中存在异常,其中使用诸如coalesce()
之类的函数可以阻止索引用于某些操作。再次,这不适用于您的情况。
答案 1 :(得分:2)
也许最好的解决方案是更新架构,以便字段不允许空值。您可以关闭null,并设置默认值(例如0或'')来解决问题。