mysql記錄行資料是有限的。大小為64k,即65535個位元組,而varchar要用1-2位元組來儲存字段長度,小於255的1位元組,大於255的2位元組。
mysql 5.0後,英文本元固定都是乙個位元組,漢字字元根據編碼方式佔不同位元組,utf-8佔3個位元組,gbk佔了2個位元組。
第一,當編碼方式為utf-8時,varchar存到21845就存不下了.也就是最大長度是21844.根據上面資訊可以推算出 ( 65535-2 )/3=21844餘1
例子如下:
當編碼格式為gbk時,varchar能存多少字元呢?經過推理可知大約能存32766個字元,(65535-2)/2=32766餘1。
那麼看看實驗結果如下:
前段時間乙個哥們提bug,要把備註等字段全部最大大小設定為1000,甚至更多,這個表的字段本身就已經很多了,而我們設計表時一般都預設使用utf8這個編碼格式,那麼乙個漢字就佔了3個位元組,故乙個行記錄的長度就會短了些,資料占用儲存資源也會多了些,然後修改的時候成功的報了row size too large的這個錯誤。這裡提出來也是為了讓大家注意下。
設計表的時候不同的編碼格式會導致varchar的最大值發生變化,varchar(數值),這個數值指的是字元數,也可以說是乙個字,但是不是位元組,當然儲存的資料還是乙個英文佔乙個位元組,乙個漢字根據編碼格式佔不同位元組。
mysql varchar最大長度
mysql中varchar最多能儲存65535個位元組的bai資料。du varchar 的最大長度受限於最大行zhi長度 max row size,65535bytes 65535並不是乙個很精確的上限,可dao以繼續縮小這個上限。65535個位元組包括所有欄位的長度,變長字段的長度標識 每個變長...
XML解析到底能多快?
經驗總結 xml 解析到底能多快?by abllen 近來,因為工作的關係,需要對大xml檔案進行解析使用,就專門對解析效率問題作了下研究。場景 在我們的場景中,會將大量的業務配置資訊存放在db,便於前端修改,後端使用時,會先將db匯出到本地xml格式檔案,再各自載入。這裡之所以不直連資料庫一是考慮...
MySQL Varchar的新認識
mysql中的char,varvhar以及text型別一直是需要被搞清楚的一回事,他們之間的大致的區別在網上都有。我查了以後發現對於varchar,網上說的是最大長度為65535個位元組 網上說mysql5.0.3之後才有,5.0.3之前varchar的最大值並沒有那麼大,這個說法我並沒有去求證 於...