mysql-varchar、text 型別到底能儲存多大字元?
阿新 • • 發佈:2021-12-08
前提:一箇中文字元大概佔用 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斤的人民幣我肯定拎起來就跑。