gpt4 book ai didi

sql-server - 你的 Nvarchar() 有多大?

转载 作者:搜寻专家 更新时间:2023-10-30 19:41:01 32 4
gpt4 key购买 nike

在设计数据库时,在决定 nvarchar 应该有多大时,您会考虑哪些决定。

如果我要制作地址表,我的直觉 react 是地址行 1 像旧的访问数据库一样是 nvarchar(255)。

我发现使用它让我为旧的“字符串将被截断”而烦恼。我知道这可以通过限制输入框来防止,但如果用户确实有一个超过 255 的地址行,这应该被允许。

我应该让我的 nvarchar(?????) 有多大

最佳答案

我的建议:让它们和你真正需要的一样大。

例如对于邮政编码列,10-20 个字符就足够了。电话号码也是如此。电子邮件可能更长,50-100 个字符。名字 - 好吧,我通常用 50 个字符,名字也一样。如果确实需要,您可以随时轻松地扩展字段 - 这根本不是什么大事。

让所有 varchar/nvarchar 字段尽可能大真的没有意义。毕竟,SQL Server 页是固定的,每行限制为 8060 字节。拥有 10 个 NVARCHAR(4000) 字段只是自找麻烦....(因为如果您实际上试图用太多数据填充它们,SQL Server 会向您吐口水)。

如果您真的需要一个非常大的字段,请使用 NVARCHAR/VARCHAR(MAX) - 只要它们适合,它们就会存储在您的页面中,如果它们太大,就会被发送到“溢出”存储。

NVARCHAR 与 VARCHAR:这真的可以归结为您是否真的需要“外来”字符,例如日文、中文或其他非 ASCII 样式的字符?在欧洲,甚至一些东欧字符也不能再用 VARCHAR 字段表示(它们将被去掉 hach​​ek(?拼写?)。西欧语言(英语、德语、法语等)都很好地服务于变量。

但是:NVARCHAR 始终使用两倍的空间——在磁盘上和在 SQL Server 内存中。如果你真的需要它,你就需要它——但你真的吗? :-) 这取决于你。

马克

关于sql-server - 你的 Nvarchar() 有多大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/919871/

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