gpt4 book ai didi

sql - 数据库中空值使用的空间

转载 作者:太空狗 更新时间:2023-10-30 01:39:59 25 4
gpt4 key购买 nike

如果列为空,是否会影响该列使用的空间?列定义使用的空间是否固定?这是否因数据库而异。(我主要对 SQL Server 2000 感兴趣。)

澄清:问题与列“可空”时发生的情况无关(正如 Kritsen 和 gbn 指出的那样,这又花费了一点)。问题是,当列实际上为空时(在某些特定行中)是否有任何节省。

...

Cadaeic 为 SQL Server 提供了答案,这似乎在 SQL Server 2008 版之前没有节省,而根据 Quassnoi 的说法,如果空列在末尾,您可以在 Oracle 中节省。感谢您的回答,他们都很有帮助。

最佳答案

在列中存储 NULL 不会特别消耗或节省空间。对于定长数据,仍然保留整个空间。

另一方面,可变长度数据只需要数据的长度加上存储实际长度的开销。比如一个VARCHAR(n)会用2个字节的数据来表示实际长度,所以需要的存储空间总是n+2。

此外,应该提到的是,如果 SET ANSI_PADDING ON,具有 NULL 值的 char(n) 将表现为 VARCHAR(n)。

无论如何,当使用 SQL Server 2000 或 SQL Server 2005 时,您不会认识到存储 NULL 所节省的空间。SQL Server 2008 引入了稀疏列的概念,它可以为主要为 NULL 的列节省空间。

关于sql - 数据库中空值使用的空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/556363/

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