91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL varchar類型最大值是多少

發布時間:2021-12-04 11:57:20 來源:億速云 閱讀:560 作者:iii 欄目:大數據

本篇內容介紹了“MySQL varchar類型最大值是多少”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

問題:MySQL 數據庫的varchar字段類型最大存儲長度到底是多少?

問題分析

一切以官方文檔為準,翻了下官方描述如下:

In MySQL 4.1 the length is always 1 byte. In MySQL 5.0 the length may be either 1 byte (for up to 255) or 2 bytes (for 256 to 65535).

大概意思就是說:

  • 在MySQL 4.1以前,長度總是1個字節(varchar(20),指的是20字節)

  • 在MySQL 5.0以后,長度可以是1字節(最多255個字節)或2個字節(256到65535)

按照官網說法最大值是65535bytes,utf8mb4編碼情況下每個字符占4個bytes,最大值應該為16383.75

65535/4=16383?.75

實踐驗證

到此貌似已經有了結論了,但實際情況真的是這樣的么?

我們來實驗下試試看?

mysql 版本:select version(); // 5.7

1、若一個表只有一個varchar類型

定義如下:

CREATETABLE`t1` (    `c`varchar(N) DEFAULTNULL) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

那表 t1 的`c`字段的最大長度N為多少呢?

(65535?1?2)/4=16383?

備注:
· 減1的原因是實際行存儲從第二個字節開始;
· 減2的原因是varchar頭部的2個字節表示長度;
· 除4的原因是字符編碼是utf8mb4。

2)若表中包含其他多種類型的情況呢

定義如下:

CREATETABLE`t2` (  `c1`int(10) DEFAULTNULL,  `c2`char(32) DEFAULTNULL,  `c3`varchar(N) DEFAULTNULL) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

那表 t2 的`c`字段的最大長度N為多少呢?

(65535?1?2?4?32*4)/4=16350

備注:
· 減1、減2的原因同上;
· 減4的原因是int類型占用4個字節;
· 減32*4的原因是utf8mb4編碼的char類型占用4個字節(長度32)

我們來驗證一下是否如上述推斷計算所述:

1)修改t2表c3字段長度為16350
alter table `t2` modify column `c3` varchar(16350)

執行成功。

2)修改t2表c3字段長度為16351

alter table `t2` modify column `c3` varchar(16351);

執行失敗,報錯信息如下:

Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs.

“MySQL varchar類型最大值是多少”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

淄博市| 嘉善县| 壤塘县| 金塔县| 新化县| 双鸭山市| 连南| 绥滨县| 扎赉特旗| 宁蒗| 四子王旗| 白水县| 南木林县| 页游| 惠水县| 西吉县| 河东区| 开化县| 个旧市| 买车| 延寿县| 达拉特旗| 淳化县| 贵南县| 萨嘎县| 贵州省| 东明县| 福清市| 固原市| 越西县| 仪征市| 厦门市| 吐鲁番市| 贵港市| 宿迁市| 崇信县| 道孚县| 穆棱市| 民勤县| 石家庄市| 陆河县|