1. 程式人生 > 其它 >mysql-varchar、text 型別到底能儲存多大字元?

mysql-varchar、text 型別到底能儲存多大字元?

前提:一箇中文字元大概佔用 3個位元組,一個英文或者數字字元佔用 1 個位元組,length() 函式檢視的是位元組數,char_length() 檢視的是字元數

varchar 預設儲存的是字元

varchar 儲存的是字元,長度是建立資料庫中定義好的,例如下面的 name1 可以儲存 11 個字元,無論是中文還是英文

例如:

create table test
(
    id    int(20)     not null
        primary key,
    age   int         null,
    name  json        null,
    name1 varchar(11) null
);

text 預設儲存的是位元組

和 varchar 不同,text 儲存的是位元組,最大 65535 位元組,需要使用 length() 函式來看,所以,text 裡面如果有中文的話,字元數是不等於位元組數的,比如你在程式碼中判斷字元長度沒有超過 65535,但是去插入資料庫時,可能會報 | [2021-12-08 16:08:21] [22001][1406] Data truncation: Data too long for column 'name1' at row 1

人的潛力是可以激發的,比如說你給我50斤的磚我可能拎不動,但你要是給我100斤的人民幣我肯定拎起來就跑。