Kid*_*ode 1 sql sql-server varchar database-design char
Char
并且varchar
是SQL中的数据类型,因为它们在许多其他语言中(所以这个问题可能是多语言).
从我的理解,不同的是,如果我宣布Char
因为Char(20)
它会分配20(字节/位)有人能澄清这一点呢?现在,我将使用字节.].然后,如果我只使用16个字节,我仍然会有四个分配给该字段.(浪费4个字节的内存.)
但是,如果我声明一个varchar
as varchar(20)
并且只使用了16个字节,那么它只会分配16个字节.
当然这更好吗?为什么有人会选择char
?它是遗留的原因,还是我缺少的东西?
喜欢VARCHAR.
在存储紧张的旧时代,它对空间至关重要.如今,磁盘存储很便宜,但RAM和IO仍然很珍贵.VARCHAR是IO和缓存友好的; 它允许您使用数据而不是浪费的文字"空间"空间更密集地打包db缓冲区缓存,并且出于同样的原因,空间填充会产生IO开销.
CHAR()的优势在于经常更新的记录减少了行链接.更新字段并且值大于先前分配的值时,记录可能会链接.然而,这是可以管理的; 数据库通常支持表存储属性上的"无空闲百分比"设置,该设置告诉数据库每行预分配多少额外空间以进行增长.
VARCHAR几乎总是优选的,因为空间填充要求您了解它并以不同的方式编写代码.不同的数据库处理不同.使用VARCHAR,您知道您的字段仅包含您存储在其中的内容.
我还没有用CHAR设计十多年的架构.
归档时间: |
|
查看次数: |
4333 次 |
最近记录: |