本文目錄一覽:
MySQL 數據庫 varchar 到底可以存多少個漢字,多少個英文呢
這個問題還真不好回答
5.0版本一前,
varchar最多支持255個
位元組(bytes)
至於漢字,還要看你表的編碼
如果是gbk編碼,就是
127個漢字字符。如果是unicode
則是
255/3
這樣
utf-8比較常用
也是255/3
這是之前,咱們再說5.0以後
5.0之後
引入了更好的字符集處理方式
導致mysql會根據不同的
編碼
自動分配存儲空間的實際位元組數。
比如
你用acsii編碼
varchar(500)
就是
500個西文字符。
如果
你用utf-8
也是
500個中文字符。
總之
是系統自動處理的實際分配位元組數。直接表現為最大的當前編碼的最大長度。
5.0這時候
MySQL
已經最大可以支持varchar(65535)
大字符數量的數據。不建議用varchar影響性能。
自己斟酌吧
mysql中varchar(50)最多能存多少個漢字
首先要確定mysql版本,一般一個漢字2個位元組,50即可存25個漢字。
4.0版本以下,varchar(50),指的是50位元組,如果存放UTF8漢字時,只能存16個(每個漢字3位元組)。
5.0版本以上,varchar(50),指的是50字符,無論存放的是數字、字母還是UTF8漢字(每個漢字3位元組),都可以存放50個。最好是在自己數據庫中建個表試試可以放多少漢字,現在mysql已經有5.0了,varchar(50)是可以存50個漢字的。
存儲引擎
MyISAMMySQL 5.0 之前的默認數據庫引擎,最為常用。擁有較高的插入,查詢速度,但不支持事務。
InnoDB事務型數據庫的首選引擎,支持ACID事務,支持行級鎖定, MySQL 5.5 起成為默認數據庫引擎。
BDB源 自 Berkeley DB,事務型數據庫的另一種選擇,支持Commit 和Rollback 等其他事務特性。
Memory所有數據置於內存的存儲引擎,擁有極高的插入,更新和查詢效率。但是會佔用和數據量成正比的內存空間。並且其內容會在 MySQL 重新啟動時丟失。
以上內容參考:百度百科-mySQL
MySQL中varchar最大長度是多少
mysql中varchar最多能存儲65535個位元組的數據。
varchar 的最大長度受限於最大行長度(max row size,65535bytes)。65535並不是一個很精確的上限,可以繼續縮小這個上限。65535個位元組包括所有字段的長度,變長字段的長度標識(每個變長字段額外使用1或者2個位元組記錄實際數據長度)、NULL標識位的累計。
擴展資料
1、varchar存儲規則:
mysql4.0版本以下,varchar(20),指的是20位元組,如果存放UTF8漢字時,只能存6個(每個漢字3位元組)
mysql5.0版本以上,varchar(20),指的是20字符,無論存放的是數字、字母還是UTF8漢字(每個漢字3位元組),都可以存放20個,最大大小是65532位元組 。
2、varchar受編碼長度限制規則:
字符類型若為gbk,每個字符最多佔2個位元組,最大長度不能超過32766;
字符類型若為utf8,每個字符最多佔3個位元組,最大長度不能超過21845。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/309494.html