gpt4 book ai didi

sql - NULL 与 NOT NULL 性能差异

转载 作者:行者123 更新时间:2023-12-03 04:28:31 30 4
gpt4 key购买 nike

最近我在查看我们拥有的 SQL 表并注意到以下内容。

    [FooColumn] CHAR (1) DEFAULT ('N') NOT NULL,

在上面您可以看到 FooColumn 始终默认为“N”,但仍然指定了“NOT NULL”。

将列设置为“NOT NULL”而不是“NULL”会存在一些存储/性能差异吗?

SQL Server 如何处理“NOT NULL:与“NULL”列不同?

注意:这仅适用于 SQL,而不是外部执行 NULL 检查的开销

最佳答案

只有当您有原因时(即 UI 或后端关系的必填字段),您才应该使用 NOT NULL。 NOT NULL 与 NULL 的性能可以忽略不计,根据 this article from 2016 (SQL SERVER) ,在决定 NOT NULL 与 NULL 时,性能不应成为考虑因素。

即使该字段默认为“N”,如果允许空值,命令仍然可以将其设置为 NULL。归根结底,该列的有效数据是否为 ​​NULL。

编辑

在数据驱动的技术应用程序中,根据我的经验,我们使用以下一些准则:

  • 对于数字字段,NULL 对于用户来说是未知的,并且所有数字都有意义。
  • 对于字符串字段,NULL 和 ""对于用户来说是相同的,因此这取决于您的后端应用程序。
  • 我知道您的问题是排除 ISNULL 检查,但如果您执行了很多检查,那么可能会有一种代码味道:如果可能的话,这些字段应该为 NOT NULL,因为它们可能会变得昂贵。

关于sql - NULL 与 NOT NULL 性能差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48094960/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com