亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

什么是MySQL VARCHAR最大尺寸?

什么是MySQL VARCHAR最大尺寸?

繁花不似錦 2019-08-30 15:41:47
我想知道MySQL VARCHAR類型的最大大小是多少。我讀到最大尺寸受行大小約65k的限制。我嘗試將字段設置為varchar(20000)但是它說這太大了。我可以把它設置為varchar(10000)。我可以設置的最大值是多少?
查看完整描述

3 回答

?
寶慕林4294392

TA貢獻2021條經驗 獲得超8個贊

根據在線文檔,有64K行限制,您可以使用以下方法計算行大?。?/p>


row length = 1

             + (sum of column lengths)

             + (number of NULL columns + delete_flag + 7)/8

             + (number of variable-length columns)

您需要記住,列長度不是它們大小的一對一映射。例如,CHAR(10) CHARACTER SET utf8十個字符中的每一個都需要三個字節,因為特定的編碼必須考慮每個字符的三字節屬性utf8(即MySQL的utf8編碼而不是“真正的”UTF-8,最多可以有四個字節)。


但是,如果行大小接近64K,則可能需要檢查數據庫的架構。這是一個罕見的表,需要在正確設置(3NF)數據庫中這么寬 - 這是可能的,只是不常見。


如果您想使用更多,可以使用BLOB或TEXT類型。這些不計入行的64K限制(除了小的管理占用空間),但您需要了解其使用的其他問題,例如無法使用超過一定數量的整個文本塊進行排序字符(雖然可以向上配置),強制臨時表在磁盤上而不是在內存中,或者必須配置客戶端和服務器通信緩沖區以有效地處理大小。


允許的尺寸為:


TINYTEXT          255 (+1 byte  overhead)

TEXT          64K - 1 (+2 bytes overhead)

MEDIUMTEXT    16M - 1 (+3 bytes overhead)

LONGTEXT      4G  - 1 (+4 bytes overhead)

你仍然有字節/字符不匹配(這樣一MEDIUMTEXT utf8列可以“只”存儲大約五十萬個字符,(16M-1)/3 = 5,592,405)但它仍然會大大擴展你的范圍。



查看完整回答
反對 回復 2019-08-30
?
紅糖糍粑

TA貢獻1815條經驗 獲得超6個贊


varchar的最大長度取決于MySQL中的最大行大小,即64KB(不包括BLOB):


VARCHAR(65535)但是,請注意,如果使用多字節字符集,則限制較低:


VARCHAR(21844)CHARACTER SET utf8


查看完整回答
反對 回復 2019-08-30
  • 3 回答
  • 0 關注
  • 1019 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號