冷面閻羅

          低調做人&&高調做事
          隨筆 - 208, 文章 - 3, 評論 - 593, 引用 - 0
          數據加載中……

          Char 和 Varchar 比較

          具考證:在字符長度一定時CHAR的性能比VARCHAR好,而在長度不確定時,CHAR類型的字段在使用時性能略差。這個在sqlServer數據庫下面能夠體現,并且這個字段是經常使用的。

          區別:
          1.CHAR的長度是固 定的,而VARCHAR2的長度是可以變化的, 比如,存儲字符串“abc",對于CHAR (20),表示你存儲的字符將占20個字節(包括17個空字符),而同樣的VARCHAR2 (20)則只占用3個字節的長度,20只是最大值,當你存儲的字符小于20時,按實際長度存儲。由于char是以固定長度的,所以它的速度會比 varchar快得多!但程序處理起來要麻煩一點,要用trim之類的函數把兩邊的空格去掉! 
          2.CHAR的效率比VARCHAR2的效率稍高。
          3.目前VARCHAR是VARCHAR2的同義詞。工業標準的VARCHAR類型可以存儲空字符串,但是oracle不這樣做,盡管它保留以后這樣做的權利。Oracle自己開發了一個數據類型VARCHAR2,這個類型不是一個標準的VARCHAR,它將在數據庫中varchar列可以存儲空字符串的特性改為存儲NULL值。如果你想有向后兼容的能力,Oracle建議使用VARCHAR2而不是VARCHAR。 
           
          何時該用CHAR,何時該用varchar2?
          CHAR與VARCHAR2是一對矛盾的統一體,兩者是互補的關系.
          VARCHAR2比CHAR節省空間,在效率上比CHAR會稍微差一些,即要想獲得效率,就必須犧牲一定的空間,這也就是我們在數據庫設計上常說的‘以空間換效率’。
          VARCHAR2 雖然比CHAR節省空間,但是如果一個VARCHAR2列經常被修改,而且每次被修改的數據的長度不同,這會引起‘行遷移’(Row Migration)現象,而這造成多余的I/O,是數據庫設計和調整中要盡力避免的,在這種情況下用CHAR代替VARCHAR2會更好一些。

          posted on 2007-06-07 12:51 冷面閻羅 閱讀(2020) 評論(2)  編輯  收藏 所屬分類: 數據庫

          評論

          # re: Char 和 Varchar 比較 [未登錄]  回復  更多評論   

          很有幫助,謝謝
          2007-06-25 09:34 | cc

          # re: Char 和 Varchar 比較   回復  更多評論   

          介紹的蠻詳細轉貼下啊!
          2008-01-12 15:59 |
          主站蜘蛛池模板: 西畴县| 永丰县| 保定市| 威海市| 兴义市| 石景山区| 婺源县| 佛冈县| 仪陇县| 崇仁县| 沭阳县| 东丽区| 石门县| 北宁市| 渝北区| 陆川县| 霞浦县| 额尔古纳市| 海城市| 娄底市| 博乐市| 公主岭市| 安多县| 平定县| 潢川县| 琼海市| 和静县| 泗阳县| 祁门县| 兴化市| 清丰县| 肇庆市| 衡阳县| 凤凰县| 田阳县| 北安市| 泽普县| 广汉市| 黑龙江省| 迁安市| 茂名市|