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

MySQL數據庫char與varchar的區別分析及使用建議
來源:易賢網 閱讀:1016 次 日期:2014-10-14 09:48:48
溫馨提示:易賢網小編為您整理了“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)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
欧美日韩精品一区二区三区四区| 国产精品成人久久久久| 欧美日韩精品一区| 亚洲制服av| 狠狠综合久久av一区二区老牛| 欧美激情一区二区三级高清视频| 久久精品视频va| 欧美一级片在线播放| 亚洲一品av免费观看| aa级大片欧美三级| av成人国产| 亚洲一区二区三区四区中文| 欧美日韩一区二区欧美激情 | 国产精品高清网站| 欧美精品一区三区| 久久久久五月天| 久久综合狠狠综合久久综青草 | 欧美日韩精品在线播放| 精品96久久久久久中文字幕无| 美女主播精品视频一二三四| 国内精品视频666| 国产日韩欧美精品在线| 国产精品美女久久久浪潮软件 | 亚洲一区二区高清| 亚洲激情六月丁香| 亚洲精品美女91| 一本大道久久a久久精品综合| av不卡在线看| 午夜欧美电影在线观看| 久久精品人人| 久久精品国产精品亚洲精品| 久久精品视频免费| 久久婷婷国产综合国色天香| 久久综合九色综合久99| 欧美高清视频一区二区三区在线观看| 欧美精品在线免费播放| 国产精品欧美精品| 国产曰批免费观看久久久| 亚洲国产另类久久精品| 亚洲一区3d动漫同人无遮挡| 久久精品亚洲乱码伦伦中文 | 欧美日韩亚洲一区二区三区在线| 欧美午夜视频| 国内精品久久久久影院优| 亚洲精品免费电影| 在线亚洲一区二区| 欧美在线观看网站| 免费成人在线观看视频| 欧美日韩精品伦理作品在线免费观看 | 亚洲免费久久| 一区二区三区视频免费在线观看| 午夜精品久久久久久久| 免费看成人av| 欧美视频中文在线看| 国产一区二区三区在线观看网站| 亚洲国产精品久久| 亚洲一区国产视频| 美女网站久久| 国产精品盗摄久久久| 在线观看国产精品网站| 亚洲中字黄色| 欧美大秀在线观看| 国产午夜精品在线| 亚洲视频在线二区| 欧美国产视频在线观看| 韩国成人精品a∨在线观看| 亚洲一区久久久| 美女免费视频一区| 国产精品成人一区| 日韩亚洲欧美综合| 久久精品国产久精国产一老狼| 国产精品豆花视频| 亚洲国产高清自拍| 欧美一区二区三区免费观看| 欧美精品在线观看播放| 亚洲黄色av一区| 乱中年女人伦av一区二区| 国产精品久久久久久久久久免费 | 亚洲精品乱码| 久久久久综合网| 国产午夜精品一区二区三区欧美 | 欧美福利视频一区| 伊人夜夜躁av伊人久久| 久久精品免费电影| 国产午夜精品美女毛片视频| 性色av一区二区三区在线观看 | 噜噜噜在线观看免费视频日韩| 国产目拍亚洲精品99久久精品 | 欧美成人精品不卡视频在线观看| 精品成人乱色一区二区| 久久久免费精品视频| 国模精品一区二区三区| 久久漫画官网| 加勒比av一区二区| 久久在线免费视频| 亚洲国产专区| 欧美日韩视频在线一区二区| 中文av一区二区| 国产精品高精视频免费| 亚洲欧美日韩一区在线| 国产亚洲精品美女| 久久影院午夜片一区| 91久久在线观看| 欧美三区美女| 午夜日韩视频| 在线不卡欧美| 欧美日韩免费在线观看| 亚洲欧美一区二区精品久久久| 国产日韩欧美一区在线| 久久综合中文字幕| 日韩午夜中文字幕| 国产欧美日韩在线| 男女激情视频一区| 亚洲——在线| 好看的日韩视频| 欧美黄色网络| 欧美一级片一区| 亚洲成人中文| 国产精品久久7| 久久综合色婷婷| 在线亚洲+欧美+日本专区| 国产亚洲二区| 欧美日韩视频在线| 久久久久久亚洲精品杨幂换脸| 亚洲精品一区二区三区福利| 国产乱码精品一区二区三区忘忧草| 久久精品人人做人人爽电影蜜月| 91久久香蕉国产日韩欧美9色 | 亚洲午夜精品| 极品日韩久久| 欧美性猛交视频| 久久久精品视频成人| 亚洲免费观看在线视频| 国产亚洲欧美一区二区三区| 欧美激情综合五月色丁香小说| 午夜亚洲视频| 亚洲日本中文字幕| 国内精品久久久久久影视8| 欧美日本在线看| 久久久久久穴| 午夜精品视频在线观看| 日韩午夜电影| 亚洲第一页自拍| 国产性做久久久久久| 欧美日韩成人激情| 久久婷婷影院| 欧美一区二区三区久久精品| 一个色综合导航| 亚洲黄色天堂| 在线观看视频欧美| 国产色爱av资源综合区| 欧美丝袜一区二区三区| 欧美激情在线| 欧美成人免费在线观看| 久久香蕉国产线看观看av| 欧美日韩亚洲国产精品| 最近中文字幕日韩精品| 国产精品综合不卡av| 欧美国产免费| 欧美大尺度在线| 另类激情亚洲| 久久久久.com| 欧美综合二区| 久久av老司机精品网站导航| 亚洲欧美国产日韩天堂区| 在线综合亚洲欧美在线视频| 亚洲日本欧美| 亚洲免费成人av电影| 亚洲精品女av网站| 亚洲精品视频在线观看免费| 亚洲国产精品视频一区| 亚洲高清在线视频| 亚洲第一中文字幕| 亚洲国产1区| 亚洲精品日韩欧美| 99re亚洲国产精品| 一区二区久久久久| 亚洲综合另类| 久久国产精品久久国产精品| 久久久精品日韩| 开心色5月久久精品| 蜜桃久久精品乱码一区二区| 欧美va亚洲va国产综合| 欧美成人精品在线视频| 欧美国产日韩一区| 欧美日韩精品| 国产精品永久在线| 国模私拍一区二区三区| 国外成人在线视频网站| 伊甸园精品99久久久久久| 亚洲国产精品电影| 亚洲精选91| 亚洲欧美一区二区原创| 久久国产加勒比精品无码| 久久综合成人精品亚洲另类欧美| 欧美大尺度在线| 欧美揉bbbbb揉bbbbb| 国产女人18毛片水18精品| 一区二区在线看| 日韩一级在线|