gpt4 book ai didi

sql-server - 使用带有 NVarchar(50) 与 NVarchar(255) 列的索引?

转载 作者:行者123 更新时间:2023-12-02 16:49:56 24 4
gpt4 key购买 nike

我们有一个索引列(ModelName),它在表中非常重要,并且与“目录号”非常相似,但它不是 PK。

大量按 ModelName 订购 ;正在使用 WHERE ModelName 等。

该列最初为 NVarchar(50),但随着时间的推移,大小更改为 100,现在需要为 255。

我发现了很多关于“NVarchar(MAX) vs. NVarChar(N)”的帖子,但我无法得到结论性的答案:

专门使用 NVarchar(255) 而不是 NVarchar(100) 而不是 NVarchar(50) 是否会对性能造成任何/重大影响当谈到索引时?

就性能而言,较短的列大小 (50) 是否比较长的列大小 (255) 更好?是否可以对这样的索引进行特殊设置来提高性能?

<小时/>

这是 @a_horse_with_no_name 的评论中提供的另一个引用:

Best practices for SQL varchar column length

注意 Ariel 的回答:https://stackoverflow.com/a/8295195/1140885

上面写着:

"Specifically, when doing sorting, larger column do take up more space, so if that hurts performance, then you need to worry about it and make them smaller."

,并在评论中:

"There are issues and limitations on indexes to consider, too. You can't have a (a,b,c,d) index when all four columns are VARCHAR(255)"

没有明确的结论/引用文档等。

最佳答案

在可变长度数据类型上,如果不断积累数据,索引将会受到影响。大小越大,B 树中有效增加索引大小的组合机会就越多。在某些时候,索引大小会太大,查询会受到影响。另一方面,如果您有所有类似的数据集作为 ModelName 输入,就不会有太大问题

如果模型名称类似于 AAABB、AAAABC、AAACC 等,它不会影响您的性能,但彼此之间的标准差变高,由于尺寸过大,索引性能会很差

关于sql-server - 使用带有 NVarchar(50) 与 NVarchar(255) 列的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21310243/

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