关于 SQL Server,我了解:
var
MAX
MAX那么,在使用时总是最好使用varchar,因为我们无论如何都不分配整个大小?
varchar
我们是否应该仅在我们要在此 DB 列上强制执行约束时才使用常量大小?
SO User @Remus Rusanu 有一篇关于这个主题的非常好的文章。这是我偷的一个片段,但我建议你阅读整个内容:
处理 MAX 类型(varchar、nvarchar 和 varbinary)的代码路径不同于处理它们等效的非最大长度类型的代码路径。非最大类型可以在内部表示为普通的指针和长度结构。但是最大类型不能在内部存储为连续的内存区域,因为它们可能会增长到 2Gb。所以它们必须由流接口表示,类似于 COM 的 IStream。这会延续到涉及最大类型的每个操作,包括简单的分配和比较,因为这些操作在流接口上更加复杂。最大的影响在分配和分配最大类型变量的代码中可见(我的第一个测试),但影响在每个操作上都是可见的。