2014-02-14 121 views

回答

2

理论上,在处理VARCHAR时应该会有性能损失,因为您无法使用固定的地址计算。
但实际上这是现在不可见的。

2

没有区别。 char和varchar之间选择

2

是的,但它非常微妙。我认为字符字段实际上有与他们相关的长度。

数据存储方式有所不同。即使在末尾有空格时,char字段也会将所有字符存储在数据库中。 varchar()字段将只存储字段所需的长度。

所以,如果你有包含美国各州的名字,然后一个表:

create table states (
    stateid int, 
    statename char(100) 
); 

将占据像在数据库100 * 50 + 100 * 4 = 5400字节。使用varchar()时,空间使用量会少得多。

在较大的表中,这会增加存储数据所需的页数。这种额外的存储可能会使查询速度减慢一定程度。 (在有大量记录和大量浪费空间的桌子上可能会引人注意)。

相关问题