![]() |
1
4
我记得以前,当使用2^n长度时,磁盘或内存块的VOR对齐更好。 对齐块更快。 如今,“块”的大小更大,内存和磁盘的速度足以忽略对齐, 适用于非常大的块。(无论今天“非常大”是什么意思…) 现在这样做只是传统的。 另一个原因是我的名言: 只有10种类型的人:那些能二进制的人和其他人。 而2^n-1则是梅森素数的候选者。所以也很奇怪… |
![]() |
2
7
我认为这只是程序员在无关紧要的时候从空中挑选出一个数字。 例如,如果必须对“notes”字段设置限制,非程序员可能会选择100或200个字符作为整数,而程序员可能会将127或255作为整数。 |
![]() |
3
3
我看不出“-1”的趋势在更小/更大的领域有不同的用法。不过,我认为这只不过是开发人员/DBA OCD。当他们真的应该根据业务规则而不是“漂亮”来决定字段长度时,总是希望得到“整数”。 |
![]() |
4
2
不仅使返回值减小,而且如果使用任意限制设置字符串类型,则很可能导致问题而不是解决问题。 如果它真的是一个业务约束,那么在长度上使用文本类型(或类似的)和检查约束,并根据您试图实施的业务约束来选择数字。 DBMS可能会实现与varchar(x)相同的文本类型存储。如果没有,而且您真的很在意,那么您应该调查特定系统的内部存储策略,并考虑是否对varchar有任何好处。 |
![]() |
5
0
实际上,这是我第一次听说这种“趋势”。我的varchar字段总是和我需要的一样长。 我想说这背后没有什么特别的原因。只是开发人员的偏好。 |
![]() |
6
0
我暂时无法想象为什么它们会以2^n或2^n-1的方式调整字段大小。从SQL Server的角度来看,这听起来更像是对SQL如何在页面级别存储数据的误解,而不是特定的原因。 我会更加关注类型、潜在的页外存储(slob/lob)和行/页+以大小调整来满足业务需求,而不是基于使用2^n等的公式。 |