gpt4 book ai didi

sql - 对于将被连接、 "LIKE' d"并进行大量查询的文本字段,我应该使用什么 SQL Server 数据类型?

转载 作者:行者123 更新时间:2023-12-03 02:23:48 25 4
gpt4 key购买 nike

标题确实说明了一切,但对于那些愿意点击的人来说,还有更多信息。

  • 字符串的长度可变,通常在 2-5 个字符之间,有时可能超过 5 个字符,最多 10 个字符。永远不要超过 10 个字符。
  • 将被这样查询:
    • 选择 ... WHERE ... = 'abcd';
    • 选择 ... WHERE ... LIKE 'ab%';
  • 将在表 JOINS 中使用。

我想知道是否应该使用 nvarchar(10) 或 char(10) 或 varchar(10)?对于像我这样的情况,我真的不知道上述的优点或缺点是什么。感谢您提供的任何意见。

最佳答案

CHAR(10)将用空格填充到定义的长度,例如如果您有CHAR(10)并将“Stack”存储在其中,内容实际上将是“Stack.....”。非常适合诸如状态缩写(始终为 2 个字符)之类的内容。但填充确实有时会使查询变得更加麻烦。

VARCHAR(10)将根据需要存储尽可能多的字符 - 效率更高,但对于较大的字符串更是如此。

NVARCHAR(10)将是相同的 - 可变长度 - 但每个字符有 2 个字节(并且 NCHAR(10)CHAR(10) 相同 - 每个字符只有 2 个字节)。非常适合当您需要定期支持时,例如亚洲、西里尔文或阿拉伯字符或其他“非拉丁”字母。如果您只有西欧语言(英语、法语、德语、西类牙语等),那就浪费空间。

我的直觉告诉我 CHAR/NCHAR加入时可能会快一点,但我认为这不会真正产生重大差异。否则,如果您必须为每个条目保留 10 个字符,而大多数字符只有 2 到 5 个字符,那么您就会浪费一些空间,因此这对于 CHAR/NCHAR 来说是一个缺点。类型。

因此,如果我必须做出决定,我可能会使用 VARCHAR(10) (也就是说,在不知道您所有详细要求的情况下)。

关于sql - 对于将被连接、 "LIKE' d"并进行大量查询的文本字段,我应该使用什么 SQL Server 数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3703774/

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