2014-02-14 47 views

回答

2

理論上,在處理VARCHAR時應該會有性能損失,因爲您無法使用固定的地址計算。
但實際上這是現在不可見的。

2

沒有區別。 char和varchar之間選擇

2

是的,但它非常微妙。我認爲字符字段實際上有與他們相關的長度。

數據存儲方式有所不同。即使在末尾有空格時,char字段也會將所有字符存儲在數據庫中。 varchar()字段將只存儲字段所需的長度。

所以,如果你有包含美國各州的名字,然後一個表:

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

將佔據像在數據庫100 * 50 + 100 * 4 = 5400字節。使用varchar()時,空間使用量會少得多。

在較大的表中,這會增加存儲數據所需的頁數。這種額外的存儲可能會使查詢速度減慢一定程度。 (在有大量記錄和大量浪費空間的桌子上可能會引人注意)。

相關問題