char和varchar2的異同點

前言

最近備考時剛好遇到這個知識點,覺得char和varchar2的不同點可以從評價算法的三個標準(空間複雜度,時間複雜度,穩定性)來區分,就mark一下。

相同點

char和varchar2都是用來存儲字符的。

不同點

  1. 內存消耗

    char是固定長度字符型數據,長度以字節爲單位,最小長度和默認長度都爲1,最大長度爲2000。
    varchar2是長度變化的字符型數據,最小長度爲1,最大長度爲4000。
    varchar2的長度取決於存儲的字符串長度,char是固定長度,多出部分用空格填充。
    varchar2比char更節省空間。
  2. 效率

    使用varchar2時Oracle需要進行語法分析,分析這個字段有多少個字符,所以稍微慢一點
    char的效率比varchar2的效率稍高(以空間換時間)
  3. 穩定性

    如果一個varchar2列經常被修改,而且每次被修改的數據的長度不同,會引起“行遷移”現象,
    而造成多餘的I/O,這是數據庫設計時要儘量避免的,在這種情況下用char代替varchar2會更好一點。

敲重點

當我們查詢的字段使用固定長度字符型數據時,需要注意格式,查詢的字符串長度需要與數據類型長度相等,否則查不到數據。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章