-1

我通常尽量避免为非数字字段创建索引,但在这种情况下,我必须为定义为 char(8) 的字段创建非聚集索引。

如果我没记错的话,性能应该与 BigInt 字段的非聚集索引相同,因为它们都占用 8 个字节的存储空间。因此,如果性能相同,将只创建非聚集索引而不更改任何内容,但如果出于某种原因,BigInt 的性能会更好,那么我可能会考虑将值存储为 BigInt 而不是 char(8 )。

谢谢!

4

1 回答 1

1

简单的答案是bigint使用相同的存储空间,char(8)但可能会提供稍快的性能,因为使用的排序规则可能需要在插入或搜索索引之前进行一些转换 - 例如,如果使用不区分大小写的排序规则。正如您建议的那样,最小开销是否会超过将值转换bigint为 SQL 外部的最小开销,您只能通过设置合适的测试场景并对其进行分析来衡量。

于 2013-09-06T14:46:19.663 回答