冷面閻羅

          低調做人&&高調做事
          隨筆 - 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 冷面閻羅 閱讀(2024) 評論(2)  編輯  收藏 所屬分類: 數據庫

          評論

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

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

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

          介紹的蠻詳細轉貼下啊!
          2008-01-12 15:59 |
          主站蜘蛛池模板: 滦南县| 安泽县| 内黄县| 泾阳县| 丰都县| 福泉市| 巴彦淖尔市| 旅游| 手游| 密云县| 玛纳斯县| 庆元县| 全州县| 班戈县| 鲜城| 砚山县| 贵德县| 博罗县| 林甸县| 丹棱县| 淮北市| 姜堰市| 江陵县| 奉化市| 安塞县| 长沙县| 五台县| 利川市| 密云县| 夏津县| 彩票| 茂名市| 华蓥市| 科技| 汤原县| 乐安县| 商水县| 六盘水市| 西畴县| 平定县| 岳普湖县|