1

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

提前致谢

4

2 回答 2

3

不,您不应该担心开销。

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

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

在更复杂的查询中有一个例外,其中使用诸如coalesce()可以阻止索引用于某些操作的函数。再一次,这不适用于您的情况。

于 2013-01-27T22:45:55.783 回答
2

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

于 2013-01-27T21:29:35.797 回答