日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Mysql中varchar類型一些需要注意的地方

瀏覽:22日期:2023-10-06 17:56:25
varchar的存儲規則

4.0版本以下,varchar(20),指的是20字節,如果存放UTF8漢字時,只能存6個(每個漢字3字節)。5.0版本以上,varchar(20),指的是20字符,無論存放的是數字、字母還是UTF8漢字(每個漢字3字節),都可以存放20個,最大大小是65532字節。varchar 字段是將實際內容單獨存儲在聚簇索引之外,內容開頭用1到2個字節表示實際長度。官方是這么說的:

Values in VARCHAR columns are variable-length strings. The length can be specified as a value from 0 to 255 before MySQL 5.0.3, and 0 to 65,535 in 5.0.3 and later versions.In contrast to CHAR, VARCHAR values are stored as a one-byte or two-byte length prefix plus data. The length prefix indicates the number of bytes in the value.A column uses one length byte if values require no more than 255 bytes, two length bytes if values may require more than 255 bytes.

varchar和char 的區別區別一,定長和變長

char 表示定長,長度固定,varchar表示變長,即長度可變。當所插入的字符串超出它們的長度時,視情況來處理,如果是嚴格模式,則會拒絕插入并提示錯誤信息,如果是寬松模式,則會截取然后插入。如果插入的字符串長度小于定義長度時,則會以不同的方式來處理,如char(10),表示存儲的是10個字符,無論你插入的是多少,都是10個,如果少于10個,則用空格填滿。而varchar(10),小于10個的話,則插入多少個字符就存多少個。varchar怎么知道所存儲字符串的長度呢?實際上,對于varchar字段來說,需要使用一個(如果字符串長度小于255)或兩個字節(長度大于255)來存儲字符串的長度。但是因為他需要有一個prefix來表示他具體bytes數是多少(因為varchar是變長的,沒有這個長度值他不知道如何讀取數據)。

區別之二,存儲的容量不同

對 char 來說,最多能存放的字符個數 255,和編碼無關。而 varchar 呢,最多能存放 65532 個字符。VARCHAR 的最大有效長度由最大行大小和使用的字符集確定。整體最大長度是 65,532字節

varchar的編碼長度限制

字符類型若為 gbk,則個字符最多占2個字節,最大長度不能超過32766; 字符類型若為utf8,則每個字符最多占3個字節,最大長度不能超過21845。 若定義的時候超過上述限制,則varchar字段會被強行轉為text類型,并產生warning。

行長度限制

導致實際應用中varchar長度限制的是一個行定義的長度。 MySQL要求一個行的定義長度不能超過65535。若定義的表長度超過這個值,則提示 ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs。這就是說,比如創建一個表,表結構中有兩個varhcar類型字段,那么這兩個字段的總長度不能超過65535。官方說明如下:

Every table has a maximum row size of 65,535 bytes.This maximum applies to all storage engines, but a given engine might have additional constraints that result in a lower effective maximum row size.

varchar的控制位

MySQL 中的Varchar字符類型還保留了1個字節來留其它控制信息。

示例示例一:若一張表中只有一個字段VARCHAR(N)類型,utf8編碼,則N最大值為多少?

如:create table tb_name1(a varchar(N)) default charset=utf8,則N最大值=(65535-1-2)/3=21844。減1的原因是實際行存儲從第二個字節開始。減2的原因是varchar頭部的2個字節表示長度。除3的原因是字符編碼是utf8。sql測試:

create table tb_name1(a varchar(21844)) default charset=utf8;Query OK, 0 rows affected (0.38 sec)drop table tb_name1;Query OK, 0 rows affected (0.00 sec)create table tb_name1(a varchar(21845)) default charset=utf8;ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns 示例二:若一張表中有一個字段VARCHAR(N)類型,并且有其它的字段類型,utf8編碼,則N的最大值為多少?

如:create table tb_name2(a int, b char(20), c varchar(N)) default charset=utf8;則:N最大值=(65535-1-2-4-203)/3=21822減1的原因是實際行存儲從第二個字節開始。減2的原因是varchar頭部的2個字節表示長度。減4的原因是a字段的int類型占4個字節。減203的原因是char(20)占用60個字節,編碼是utf8。

sql測試:

create table tb_name2(a int, b char(20), c varchar(21822)) default charset=utf8;Query OK, 0 rows affected (0.28 sec)drop table tb_name2;Query OK, 0 rows affected (0.20 sec)create table tb_name2(a int, b char(20), c varchar(21823)) default charset=utf8;ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs示例三:若一張表中有多字段VARCHAR(N)類型,并且有其它的字段類型,gbk編碼,則N的最大值為多少?

如:create table tb_name3(a int, b char(20), c varchar(50), d varchar(N)) default charset=gbk;則:N最大值=(65535-1-1-2-4-202-502)/2=32693第一個減1的原因是實際行存儲從第二個字節開始。第二個減1表示第二個varchar(50)頭部一個1個字節表示長度(小于255)。減2的原因是varchar頭部的2個字節表示長度。減202的原因是char(20)占用40個字節,編碼是gbk。減502的原因是varchar(50)占用100個字節,編碼是gbk。

SQL測試:

create table tb_name3(a int, b char(20), c varchar(50), d varchar(32694)) default charset=gbk;ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs

create table tb_name3(a int, b char(20), c varchar(50), d varchar(32693)) default charset=gbk;Query OK, 0 rows affected (0.18 sec)

以上就是Mysql中varchar類型一些需要注意的地方的詳細內容,更多關于Mysql varchar類型的資料請關注好吧啦網其它相關文章!

標簽: MySQL 數據庫
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲午夜黄色| 玖玖精品视频| 婷婷五月色综合香五月| 亚洲精品欧美| 奇米777国产一区国产二区| 欧美精品三级在线| 激情久久99| 亚洲性视频h| 中文字幕日本一区| 欧美精品不卡| 日本韩国欧美超级黄在线观看| 亚洲电影有码| 麻豆久久精品| 欧美午夜网站| 日韩一区电影| 亚洲资源av| 国产伦精品一区二区三区视频| 国产精品一区二区中文字幕| 久久精品日韩欧美| 1024精品久久久久久久久| 日韩区一区二| 亚洲最新无码中文字幕久久| 亚洲在线免费| 美女视频黄 久久| 欧美亚洲在线日韩| 伊人国产精品| 国产一区日韩| 日韩中文欧美在线| 久久精品一本| 亚洲中午字幕| 国产一区二区亚洲| 免费日韩一区二区| 欧美交a欧美精品喷水| 亚洲91视频| 91精品一区| 亚洲精品97| 国产精品免费不| 五月天久久网站| 久久久久伊人| 美女国产精品| 亚洲最新无码中文字幕久久| 亚洲三级网址| 久久精品91| 国产精品s色| 免费日韩精品中文字幕视频在线| 国产极品模特精品一二| 一区二区亚洲精品| 麻豆免费精品视频| 亚洲一区欧美二区| 精品国产a一区二区三区v免费| 91久久视频| 国产精品专区免费| 国产欧美一区二区三区精品观看| 极品日韩av| 国产一区二区三区久久| 日韩精品免费一区二区夜夜嗨| 国产乱子精品一区二区在线观看| 亚洲午夜视频| 激情综合婷婷| 国产日韩一区二区三区在线播放| 激情综合自拍| 成人国产精品| 国产精品视频一区二区三区 | 精品久久视频| 中文字幕日本一区| 成人免费电影网址| 国产精品网址| 亚洲精品激情| 国产精品三上| 久久在线免费| 成人三级高清视频在线看| 欧美影院视频| 欧美综合二区| 中文精品在线| 美女少妇全过程你懂的久久| 国产理论在线| 精品免费视频| 国产精品网站在线看| 亚洲日本在线观看视频| 欧美日韩精品免费观看视频完整| 成人一区而且| 精品久久福利| 精品视频一区二区三区四区五区 | 亚洲一区久久| 亚洲国产一区二区三区在线播放| 亚洲人成在线网站| 精品72久久久久中文字幕| 国产极品模特精品一二| 国产精品一区二区三区www| 视频精品一区二区| 亚洲资源av| 久热精品在线| 亚洲综合福利| 一二三区精品| 日韩在线黄色| 国产精品网址| 精品久久网站| 亚洲日本网址| 91精品国产福利在线观看麻豆| 日韩视频网站在线观看| 亚洲成人一区在线观看| 国产aⅴ精品一区二区三区久久 | 午夜精品亚洲| 亚洲一区二区毛片| 亚洲精品系列| 国产精品亚洲人成在99www| 国产精品一区二区三区av麻| 国产精品第一国产精品| 中文在线а√在线8| 亚洲特色特黄| 视频一区欧美日韩| 日韩视频一二区| 91精品日本| 麻豆视频一区| 青青久久av| 美国三级日本三级久久99| 日韩国产欧美一区二区三区| 国产精品nxnn| 日韩国产欧美一区二区| 欧美女激情福利| 香蕉久久久久久| 久久精品一区二区国产| 一本大道色婷婷在线| 夜久久久久久| 欧美另类中文字幕| 波多视频一区| 爽好多水快深点欧美视频| 日韩av一级片| 日韩av在线中文字幕| 伊人精品视频| 国产伦精品一区二区三区视频| 91欧美在线| 国产精品毛片| 欧美国产日韩电影| 亚洲二区免费| 国产日韩在线观看视频| 99精品一区| 国产日韩欧美一区二区三区| 电影亚洲精品噜噜在线观看| 一区二区电影| www在线观看黄色| 国产日韩欧美三级| 免费国产亚洲视频| 国产亚洲一卡2卡3卡4卡新区| 国产成人精品福利| 丝袜美腿一区二区三区| 麻豆成人av在线| 国产视频一区三区| 欧美aaaaaa午夜精品| 婷婷综合激情| 国产精品xxx| 香蕉久久国产| 国产不卡一区| 男人的天堂亚洲一区| 成人在线视频免费| 日韩精品视频网| 成人看片网站| 久久国内精品| 欧美~级网站不卡| 麻豆国产精品视频| 免费久久99精品国产| 五月天av在线| 国产精品一区二区三区美女 | 久久三级视频| 国产精品一区二区三区av| 国精品一区二区三区| 麻豆精品在线视频| 一区二区国产在线观看| 91综合网人人| 99精品小视频| 蜜桃一区二区三区在线| 蜜桃成人精品| 欧美交a欧美精品喷水| 男人的天堂久久精品| 四虎884aa成人精品最新| 久久黄色影视| 亚洲精品在线a| 99热免费精品| 久久久人人人| 国产一区二区三区天码| 日韩欧美另类中文字幕| 在线视频日韩| 欧美精品高清| 国产精品美女在线观看直播| 日韩精品一区第一页| 日本а中文在线天堂| 国产欧美一区二区三区国产幕精品 | 欧美另类专区| 精品视频网站| 国产日韩欧美一区在线| 美日韩精品视频| 久久亚洲国产| 亚洲伊人av| 超碰成人av| 蜜桃久久久久| 91欧美精品| 日本在线成人| 亚州欧美在线| 免费国产亚洲视频| 99国产一区|