1. char類型的長度是固定的,varchar的長度是可變的。
這就表示,存儲字符串'abc',使用char(10),表示存儲的字符將占10個字節(包括7個空字符)
使用varchar2(10),,則表示只占3個字節,10是最大值,當存儲的字符小於10時,按照實際的長度存儲。
2.char類型的效率比varchar的效率稍高
3.varchar 與 varchar2的區別
varchar2是oracle開發的一個數據類型。
工業標准的varchar可以存儲空字符串,oracle的varchar2還可以存儲NULL值,如果想要有向后兼容的能力建議使用varchar2
4.varchar2比char節省空間,但是在效率上比char稍差些。既要獲得效率即必須犧牲一點空間,這就是設計上的"以空間換時間"
varchar2雖然比char節省空間,但是一個varchar2列經常被修改,而且每次修改的數據長度不同,這會引起“行遷移的現象”,
而這造成的多余的I/O,是數據庫設計中盡量避免的,在這種情況下使用char代替varchar2會更好些。
總結:1. 如果一個字段經常被修改,而且每次修改的數據長度不同,為了效率應當考慮用char定長代替varchar2變長。(列如一個用戶的名字經常被修改)
2. 設計的時候盡量考慮 用空間換時間。