gpt4 book ai didi

sql-server - "Null"值在 SQL Server 中占用多少大小

转载 作者:行者123 更新时间:2023-12-01 16:47:57 27 4
gpt4 key购买 nike

我有一个大表,其中有 10 列。其中 4 个大多数时候保持为空。我有一个查询,空值接受任何大小或不接受任何大小(以字节为单位)。我读了几篇文章,其中一些人说:

http://www.sql-server-citation.com/2009/12/common-mistakes-in-sql-server-part-4.html

There is a misconception that if we have the NULL values in a table it doesn't occupy storage space. The fact is, a NULL value occupies space – 2 bytes

SQL: Using NULL values vs. default values

A NULL value in databases is a system value that takes up one byte of storage and indicates that a value is not present as opposed to a space or zero or any other default value.

您能否指导我了解空值所占的大小。

最佳答案

如果字段是固定宽度,则存储 NULL 占用与任何其他值相同的空间 - 字段的宽度。

如果字段宽度可变,则 NULL 值不占用空间。

除了存储空值所需的空间之外,拥有可为空的列也会产生开销。对于每一行,每个可空列使用一位来标记该列的值是否为空。无论列是固定长度还是可变长度,都是如此。

<小时/>

您在其他来源的信息中观察到的差异的原因:

  • 第一篇文章的开头有点误导。本文讨论的不是存储 NULL 值的成本,而是拥有存储 NULL 的能力的成本(即使列可为空的成本)。确实,使列可为空会花费一些存储空间,但是一旦完成此操作,存储 NULL 所需的空间就会比存储值所需的空间更少(对于可变宽度列)。

  • 第二个链接似乎是有关 Microsoft Access 的问题。我不知道 Access 如何存储 NULL 的详细信息,但如果它与 SQL Server 不同,我也不会感到惊讶。

关于sql-server - "Null"值在 SQL Server 中占用多少大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3731172/

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