日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 數據庫 > 數據庫應用 > MySQL中char與varchar數據類型選擇原則

MySQL中char與varchar數據類型選擇原則

來源:程序員人生   發布時間:2016-06-15 08:01:45 閱讀次數:3447次

很多地方在分析char與varchar數據類型選擇原則上,常常疏忽了存儲引擎。事實上,我們應當根據選定的存儲引擎,肯定如何選擇適合的數據類型。

char與varchar比較

char(3) 實際存儲字符長度 varchar(3) 實際存儲字符長度
’ ‘ 3 1
‘ab’ ‘ab ‘ 3 ‘ab’ 3
‘abc’ ‘abc’ 3 ‘abc’ 4
‘abcdefg’ ‘abc’ 3 ‘abc’ 4

總結:從上表可以看出,char屬于定長的。
char屬于定長類型,varchar屬于非定長類型,varchar屬于變長。可能有人會問為何varchar長度比數據長度大呢?由于VARCHAR保存時用1個字節或兩個字節長的前綴+數據。如果VARCHAR列聲明的長度大于255,長度前綴是兩個字節,否則是1個字節。

MyISAM存儲引擎

MyISAM數據表,最好使用固定長度的數據列代替可變長度的數據列。

InnoDB 存儲引擎

建議使用VARCHAR類型。
對InnoDB數據表,內部的行存儲格式沒有辨別固定長度和可變長度列(所有數據行都使用指向數據列值的頭指針),因此在本質上,使用固定長度的CHAR列不1定比使用可變長度VARCHAR列簡單。因此,主要的性能因素是數據行使用的存儲總量。由于CHAR平均占用的空間多于VARCHAR,因此使用VARCHAR來最小化需要處理的數據行的存儲總量和磁盤I/O是比較好的。

MEMORY存儲引擎

MEMORY數據表目前都使用固定長度的數據行存儲,因此不管使用CHAR或VARCHAR列都沒有關系。二者都是作為CHAR類型處理的。

誤區

1.我們都知道,utf⑻的中文占3個字節,gbk占兩個字節,那末varchar(20)是否是只能存儲20個字節,即存儲6個漢字呢?
答:不是這樣的,(網上說5.0之前版本是這樣的,沒有測試)。mysql varchar(20) 不管中文還是英文都能存20個,但varchar字段的最大長度跟編碼有關,如果是utf⑻,那末大概65535/3,如果是gbk,那末大概65535/2

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 日韩免费大片 | 99精品国产高清在线观看 | 欧美日韩精品一区二区三区四区 | 欧美日韩视频 | 久久久久久久久久久久久女国产乱 | 9191精品 | 欧美性猛交xxxx黑人交 | 欧美日韩一二三区 | 亚洲午夜久久久久 | 久久精品在线视频 | 美女毛片在线看 | 日本免费一区二区在线 | 欧美日韩精品综合 | 色一区二区三区四区 | 成人精品国产免费网站 | 日韩欧美网 | 自拍偷拍999 | 叶山小百合av一区二区 | 久久久久久久91 | 成人免费高清视频 | 欧美日一区 | 久久人人网| 亚洲永久网站 | 久久免费精品 | 福利片一区二区 | 色综合久久99 | 三级网站 | 久久久久成人精品 | 美女国产精品视频 | 国产一区二区三区四区www. | 一二三区在线 | 欧美亚洲一区 | 国产欧美日韩在线观看 | 色婷婷国产 | 久久久网站 | 天堂资源在线观看 | 欧美xxxx黑人又粗又长 | 欧美人妇做爰xxxⅹ性高电影 | 日韩欧美一 | 国产成人免费视频 | 青青草这里只有精品 |