mysql,选择合并开销

时间:2013-01-27 21:27:44

标签: mysql

如果在每个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

提前致谢

2 个答案:

答案 0 :(得分:3)

不,你不应该担心开销。

我对coalesce()所知道的唯一性能问题是某些版本的 SQL Server (不是MySQL!),其中第一个参数在非NULL时会被评估两次。这是一个很昂贵的问题,例如子查询。

但是,一般而言,与将数据移入和移出数据库的成本相比,内置函数的开销最小。

在更复杂的查询中存在异常,其中使用诸如coalesce()之类的函数可以阻止索引用于某些操作。再次,这不适用于您的情况。

答案 1 :(得分:2)

也许最好的解决方案是更新架构,以便字段不允许空值。您可以关闭null,并设置默认值(例如0或'')来解决问题。