中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

MySQL數據庫char與varchar的區別分析及使用建議
來源:易賢網 閱讀:2702 次 日期:2014-09-30 11:40:46
溫馨提示:易賢網小編為您整理了“MySQL數據庫char與varchar的區別分析及使用建議”,方便廣大網友查閱!

在數據庫中,字符 型的數據是最多的,可以占到整個數據庫的80%以上。為此正確處理字符型的數據,對于提高數據庫的性能有很大的作用。在字符型數據中,用的最多的就是 Char與Varchar兩種類型。前面的是固定長度,而后面的是可變長度。現在我們需要考慮的是,在什么情況下使用Char字符型數據,什么情況下采用 Varchar字符型數據。

一、VARCHAR與CHAR字符型數據的差異

在MySQL數據庫中,用的最多的字符型數據類型就是Varchar和Char.。這兩種數據類型雖然都是用來存放字符型數據,但是無論從結構還是 從數據的保存方式來看,兩者相差很大。而且其具體的實現方式,還依賴與存儲引擎。我這里就以大家最常用的MYISAM存儲引擎為例,談談這兩種數據類型的 差異。在后續建議中,也是針對這種存儲類型而言的。

這里首先需要明白的一點是,這兩種數據類型,無論采用哪一種存儲引起,系統存儲數據的方式都是不同的。正是因為如此,我們才有必要研究兩者的不同。然后在合適的情況下,采用恰當的方式。了解這一點之后,我們再來看后續的內容。

Varchar往往用來保存可變長度的字符串。簡單的說,我們只是給其固定了一個最大值,然后系統會根據實際存儲的數據量來分配合適的存儲空間。為 此相比CHAR字符數據而言,其能夠比固定長度類型占用更少的存儲空間。不過在實際工作中,由于某系特殊的原因,會在這里設置例外。如管理員可以根據需要 指定ROW_FORMAT=FIXED選項。利用這個選項來創建MyISAM表的話,系統將會為每一行使用固定長度的空間。此時會造成存儲空間的損耗。通 常情況下,VARCHAR數據類型能夠節約磁盤空間,為此往往認為其能夠提升數據庫的性能。不過這里需要注意的是,這往往是一把雙刃劍。其在提升性能的同 時,往往也會產生一些副作用。如因為其長度是可變的,為此在數據進行更新時可能會導致一些額外的工作。如在更改前,其字符長度是10位(Varchar規 定的最長字符數假設是50位),此時系統就只給其分配10個存儲的位置(假設不考慮系統自身的開銷)。更改后,其數據量達到了20位。由于沒有超過最大 50位的限制,為此數據庫還是允許其存儲的。只是其原先的存儲位置已經無法滿足其存儲的需求。此時系統就需要進行額外的操作。如根據存儲引擎不同,有的會 采用拆分機制,而有的則會采用分頁機制。

CHAR數據類型與VARCHAR數據類型不同,其采用的是固定長度的存儲方式。簡單的說,就是系統總為其分配最大的存儲空間。當數據保存時,即使 其沒有達到最大的長度,系統也會為其分配這么多的存儲空間。顯然,這種存儲方式會造成磁盤空間的浪費。這里筆者需要提醒的一點是,當字符位數不足時,系統 并不會采用空格來填充。相反,如果在保存CHAR值的時候,如果其后面有空值,系統還會自動過濾其空格。而在進行數據比較時,系統又會將空格填充到字符串 的末尾。

顯然,VARCHAR與CHAR兩種字符型數據類型相比,最大的差異就是前者是可變長度,而后者則是固定長度。在存儲時,前者會根據實際存儲的數據 來分配最終的存儲空間。而后者則不管實際存儲數據的長度,都是根據CHAR規定的長度來分配存儲空間。這是否意味著CHAR的數據類型劣于VARCHAR 呢?其實不然。否則的話,就沒有必要存在CHAR字符類型了。雖然VARCHAR數據類型可以節省存儲空間,提高數據處理的效率。但是其可變長度帶來的一 些負面效應,有時候會抵消其帶來的優勢。為此在某些情況下,還是需要使用Char數據類型。

二、項目建議

根據上面的分析,我們知道VARCHAR數據類型是一把雙刃劍,其在帶來性能提升的同時,也可能會存在著一些額外的消耗。我們在評估到底是使用VARCHAR數據類型還是采用CHAR數據類型時,就需要進行均衡。在實際項目中,我們會考量如下情況。

一是根據字符的長度來判斷。如某個字段,像人的名字,其最長的長度也是有限的。如我們給其分配18個字符長度即可。此時雖然每個人的名字長度有可能 不同,但是即使為其分配了固定長度的字符類型,即18個字符長度,最后浪費的空間也不是很大。而如果采用NVARCHAR數據類型時,萬一以后需要改名, 而原先的存儲空間不足用來容納新的值,反而會造成一些額外的工作。在這種情況下,進行均衡時,會認為采用CHAR固定長度的數據類型更好。在實際項目中, 如果某個字段的字符長度比較短此時一般是采用固定字符長度。

二是考慮其長度的是否相近。如果某個字段其長度雖然比較長,但是其長度總是近似的,如一般在90個到100個字符之間,甚至是相同的長度。此時比較 適合采用CHAR字符類型。比較典型的應用就是MD5哈希值。當利用MD5哈希值來存儲用戶密碼時,就非常使用采用CHAR字符類型。因為其長度是相同 的。另外,像用來存儲用戶的身份證號碼等等,一般也建議使用CHAR類型的數據。

另外請大家考慮一個問題,CHAR(1)與VARCHAR(1)兩這個定義,會有什么區別呢?雖然這兩個都只能夠用來保存單個的字符,但是 VARCHAR要比CHAR多占用一個存儲位置。這主要是因為使用VARCHAR數據類型時,會多用1個字節用來存儲長度信息。這個管理上的開銷CHAR 字符類型是沒有的。

三是從碎片角度進行考慮。使用CHAR字符型時,由于存儲空間都是一次性分配的。為此某個字段的內容,其都是存儲在一起的。單從這個角度來講,其不 存在碎片的困擾。而可變長度的字符數據類型,其存儲的長度是可變的。當其更改前后數據長度不一致時,就不可避免的會出現碎片的問題。故使用可變長度的字符 型數據時,數據庫管理員要時不時的對碎片進行整理。如執行數據庫導出導入作業,來消除碎片。

四是即使使用Varchar數據類型,也不能夠太過于慷慨。這是什么意思呢?如現在用戶需要存儲一個地址信息。根據評估,只要使用100個字符就可 以了。但是有些數據庫管理員會認為,反正Varchar數據類型是根據實際的需要來分配長度的。還不如給其大一點的呢。為此他們可能會為這個字段一次性分 配200個字符的存儲空間。這VARCHAR(100)與VARCHAR(200)真的相同嗎?結果是否定的。雖然他們用來存儲90個字符的數據,其存儲 空間相同。但是對于內存的消耗是不同的。對于VARCHAR數據類型來說,硬盤上的存儲空間雖然都是根據實際字符長度來分配存儲空間的,但是對于內存來 說,則不是。其時使用固定大小的內存塊來保存值。簡單的說,就是使用字符類型中定義的長度,即200個字符空間。顯然,這對于排序或者臨時表(這些內容都 需要通過內存來實現)作業會產生比較大的不利影響。所以如果某些字段會涉及到文件排序或者基于磁盤的臨時表時,分配VARCHAR數據類型時仍然不能夠太 過于慷慨。還是要評估實際需要的長度,然后選擇一個最長的字段來設置字符長度。如果為了考慮冗余,可以留10%左右的字符長度。千萬不能認為其為根據實際 長度來分配存儲空間,而隨意的分配長度,或者說干脆使用最大的字符長度。

更多信息請查看IT技術專欄

更多信息請查看數據庫
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
国产农村妇女精品一区二区| 一区二区三区高清在线观看| 国产一区二区在线免费观看 | 99视频一区二区| 欧美极品欧美精品欧美视频| 99精品欧美一区| 国产婷婷一区二区| 欧美高清在线观看| 亚洲性xxxx| 亚洲国产精品久久久久久女王| 欧美电影在线免费观看网站| 在线视频日韩| 亚洲国产精品123| 欧美国产另类| 久久精品成人一区二区三区| 亚洲国产日韩精品| 国产日韩专区在线| 在线观看中文字幕亚洲| 午夜一级久久| 国产精品久久午夜| 国产综合在线看| 亚洲永久免费视频| 亚洲在线视频观看| 欧美一区深夜视频| 久久精品水蜜桃av综合天堂| 国产精品igao视频网网址不卡日韩| 国产日本欧美一区二区| 99精品久久免费看蜜臀剧情介绍| 亚洲欧美清纯在线制服| 亚洲黄色在线看| 亚洲区中文字幕| 韩国在线视频一区| 你懂的视频一区二区| 久久黄色小说| 欧美大片免费看| 欧美在线黄色| 亚洲影视九九影院在线观看| 91久久久久久久久久久久久| 国语自产在线不卡| 1000部国产精品成人观看| 激情五月婷婷综合| 亚洲精品国产精品久久清纯直播| 亚洲高清资源| 亚洲少妇自拍| 久久国产精品亚洲77777| 欧美在线观看一区| 欧美成人福利视频| 国产精品久久久爽爽爽麻豆色哟哟 | 欧美视频不卡| 国产精品久久久久久久久| 国产深夜精品福利| 亚洲美女中文字幕| 久久久噜噜噜久久中文字幕色伊伊 | 亚洲国产婷婷香蕉久久久久久| 激情久久久久| 亚洲欧美日韩综合一区| 欧美α欧美αv大片| 国产日韩在线看片| 亚洲一区二区三区免费观看| 亚洲精品永久免费| 在线视频免费在线观看一区二区| 狼人社综合社区| 国产精品日韩一区二区| 亚洲日韩视频| 欧美日韩国产精品成人| 亚洲人体1000| 欧美视频在线一区二区三区| 亚洲三级性片| 国产精品夜夜夜一区二区三区尤| 亚洲视频一区在线观看| 欧美色综合网| 亚洲网站啪啪| 在线成人中文字幕| 国产精品h在线观看| 99亚洲一区二区| 国产精品极品美女粉嫩高清在线 | 亚洲国产精品毛片| 国产一区二区在线免费观看| 国产精品成人一区二区| 国产精品久久久久久久久久久久久久 | 亚洲人成人一区二区三区| 久久色在线观看| 欧美日韩一区二区三区| 亚洲区第一页| 亚洲精品欧美| 久久久精品性| 国产精品久久婷婷六月丁香| 亚洲黄色影院| 欧美精品啪啪| 99re66热这里只有精品3直播| 欧美国产极速在线| 亚洲综合视频一区| 狠色狠色综合久久| 欧美激情欧美激情在线五月| 国产精品自拍一区| 午夜精品成人在线| 国产免费亚洲高清| avtt综合网| 国产字幕视频一区二区| 久久久久88色偷偷免费| 一区二区三区精品国产| 亚洲人午夜精品免费| 国内精品久久久久久久影视麻豆| 欧美精品成人一区二区在线观看| 欧美一级在线播放| 精品999在线播放| 欧美国产亚洲精品久久久8v| 亚洲精品一二三区| 国产日韩欧美麻豆| 麻豆成人在线| 久久精品中文字幕免费mv| 亚洲欧美日本伦理| 亚洲女性裸体视频| 亚洲最新在线视频| 国产日韩三区| 欧美日韩亚洲视频一区| 久久久久久久久久久久久久一区| 亚洲视频精品| 亚洲免费播放| 亚洲乱码一区二区| 亚洲无限av看| 欧美中文字幕在线观看| 久久综合久久综合这里只有精品| 午夜国产精品影院在线观看| 99av国产精品欲麻豆| 亚洲国产美女久久久久| 国产在线视频欧美| 在线观看一区二区视频| 亚洲电影免费观看高清| 亚洲午夜免费视频| 欧美激情1区| 国产精品久久久久久亚洲调教| 免费不卡视频| 欧美精品精品一区| 国产伦精品一区二区三区免费| 狠狠综合久久av一区二区小说| 亚洲高清中文字幕| 欧美在线观看视频| 国产精品一国产精品k频道56| 亚洲精品老司机| 亚洲欧美久久| 久久久久久亚洲精品杨幂换脸| 久久躁狠狠躁夜夜爽| 欧美精品久久久久久久免费观看 | 亚洲午夜极品| 久久久久99| 欧美精品高清视频| 国产一区二区三区四区| 一区二区高清视频在线观看| 久久一区二区视频| 亚洲人www| 久久久精品动漫| 国产精品久久久久一区| 在线欧美小视频| 久久激情综合网| 国产欧美日韩一区| 国产欧美日本| 亚洲一级在线观看| 国产美女精品视频免费观看| 一区二区高清视频在线观看| 久久一区免费| 国产精品国产馆在线真实露脸| 欧美一区二区在线视频| 国产亚洲欧美日韩日本| 欧美经典一区二区三区| 亚洲视频狠狠| 国产午夜精品一区二区三区视频| 久久亚洲二区| 国产在线视频欧美| 亚洲女性裸体视频| 91久久久久久国产精品| 欧美理论电影在线播放| 一区二区三区自拍| 国产精品乱码| 亚洲免费在线电影| 国内外成人在线| 欧美美女bb生活片| 久久综合给合| 久久久99国产精品免费| 欧美精品日韩一本| 亚洲视频碰碰| 国产精品视频在线观看| 久久精品水蜜桃av综合天堂| 国语自产精品视频在线看抢先版结局| 亚欧美中日韩视频| 国产精品xxxav免费视频| 狠狠88综合久久久久综合网| 亚洲激情视频网站| 国产精品日韩精品欧美在线| 亚洲精品男同| 另类人畜视频在线| 性色av一区二区三区| 欧美一级久久久久久久大片| 亚洲永久在线| 欧美日韩妖精视频| 91久久精品国产91久久| 亚洲精品综合| 亚洲一区国产一区| 性欧美暴力猛交69hd| 美女主播视频一区|