mysql我定義了欄位為varchar(255)我想把長度改的大一點,怎麼弄

2021-04-10 12:56:46 字數 1593 閱讀 5684

1樓:匿名使用者

varchar的最大實際長度由最長的行的大小和使用的字符集確定。最大拿返有效長度是65,532位元組

如果unicode字元由2個位元組表示,則芹殲編碼成utf-8很可能需要3個位元組

varchar(21845)消首飢 裡面 21845 * 3 = 65535. 超過了 65532位元組的上限。

2樓:嘿呦我來也

如果長度 大於varchar(8000), 建議槐咐 你直接用text的 varchar也是擾橋有長度限鉛李純制的 varchar(n) n範圍是 0

mysql varchar()最大能定義多少,varchar(2000)正確嗎

3樓:仙人掌的憂傷

mysql5.0版本以前,varchar()最大能定義255。5.

0以上版本支百持65535位元組長度,utf8編碼下最多支援21843個字元度(不為空)。mysql5.0版本以前,varchar(2000)不正確,5.

0以上版本正確。

如果某個資料列裡包含許多重複的值,就算為它建立了索引也不會有很好的效果。比如說,如果某個資料列裡包含的淨是些諸如 「0/1」 或 「y/n」 等值,就沒有必要為它建立一個索引。

4樓:少年真奇妙

就中文漢字來說,utf8佔3個位元組 ,gbk佔2個位元組。varchar(n),這裡的n代表n個字元。

mysql表中欄位總長度可以有65535個位元組,意思就是 如果一個表只有varchar(n)這麼一個欄位,而且是utf8的話,那麼這個欄位最大可以有65535個位元組的長度,差不多n=65585/3的字元。

為什麼說差不多。因為varchar在儲存的時候,會另加一個位元組來記錄長度(如果列宣告的長度超過255位元組,則使用兩個位元組,剛好2的8次方是255,超過255就只能用2個位元組16位來記錄了)。

如果表中有個char(10)和varchar(n)的話,那麼就就這樣,n的最大值=65535-10*3,我是這麼算的, 雖然最後差1-2個位元組,不過不用這麼在意吧?除非你有強迫症。呵呵!

英文的話 兩種都是一個字母是1個位元組。能放多少個可以自己測試的,其中的編碼知識,值得研究,但是不值得深究,我感覺太鑽牛角尖了。

解決你的問題應該沒難度了,char最大才是255個字元,不論什麼編碼。

varchar(255),能存放多少還要看這個表中其他欄位佔掉多少的長度,和編碼格式,才能算出來,我上面已經給出演算法過程了。你慢慢理解。

我的傳送門

5樓:匿名使用者

varchar 在5.03以前長度可以為0~255, 之後是65535

varchar(2000)正確

varchar(255) 大概可以存255位元組的字串, 中英文佔位不同, 字元數也不同

6樓:匿名使用者

你不會檢視mysql手冊嗎?每個變數的範圍不會查嗎?

7樓:匿名使用者

varchar255不是這個意思....你真的要去看看基礎基礎

我給愛情給了定義,請你們猜猜,我給愛情給了一個定義,請你們猜猜?

真正相愛的 兩個人在一起相處,最重要的是要做到相互信任 相互尊重 相互諒解和相互幫助,只有做到這些最起碼的要求,兩個人在一起才會開心,彼此的感情才會昇華才會延續下去。真正的愛情是經得起任何考驗的,是不會被時間 距離等客觀因素所能影響到的 追問 還有嗎?要達到我想的了呢 請給我一個解釋 有可能是快遞代...

c語言 我想定義行數為n的陣列,為什麼還是告訴我不確定數

你這麼寫的話,那個n還是一個變數,c語言首先需要編譯才能執行,而編譯的時候編譯器就認為這個n是不確定的,所以他不知道要給你分配多大的儲存空間,我建議你可以定義一個指標來做,下面是一個例子。假設陣列存的是int型 那麼 你先申請10個元素 int a int malloc sizeof int 10 ...

以《生活告訴了我》為題寫作文,以《生活告訴了我》為題寫一篇作文

靜靜地獨自坐在房間的茉個角落裡,回憶著記憶中的點點滴滴。不去傾聽窗外的車聲 叫賣聲 嘻戲聲。讓自己的心在此刻平靜下來,不璉有一絲雜念。對我來說,這又是平靜的一天,又是一個令自己厭惡的一天,時間的腳步在不停的輪轉,它載著我的心回到了記憶的起點。那裡,是一個無憂的世界,是一個法埃永遠都無法闖入的禁地。那...