发布网友 发布时间:2022-04-23 14:09
共4个回答
懂视网 时间:2022-04-29 20:25
(推荐教程:mysql视频教程)
mysql各字符集下汉字和字母占字节数
varchar(N), 这里的N是指字符数,并不是字节数.占用的字节数与编码有关
在mysql 5.1.5-alpha下测试得出如下结论
latin1:
1character=1byte, 1汉字=2character,
也就是说一个字段定义成 varchar(200),则它可以存储100个汉字或者200个字母。
这一点要注意,尤其是当字段内容是字母和汉字组成时,尽量假设字段内容都是由汉字组成,据此来设置字段长度
utf8:
1character=3bytes, 1汉字=1character
也就是说一个字段定义成 varchar(200),则它可以存储200个汉字或者200个字母。
gbk:
1character=2bytes,1汉字=1character
也就是说一个字段定义成 varchar(200),则它可以存储200个汉字或者200个字母。
热心网友 时间:2022-04-29 17:33
首先要确定mysql版本,一般一个汉字2个字节,50即可存25个汉字。
4.0版本以下,varchar(100),指的是100字节,如果存放UTF8汉字时,只能存33个(每个汉字3字节)
5.0版本以上,varchar(100),指的是100字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放100个。
varchar特点
1、使用比固定长度类型(char)占用更少存储空间(除了使用ROW_FORMAT=FIXED创建的MyISAM表)。
2、使用额外的1-2字节来存储值长度,列长度<=255使用1字节保存,其它情况使用2字节保存。例如varchar(10)会占用11字节存储空间,varchar(500)会占用502字节存储空间。
3、节约空间,所以性能会有帮助。在更新的时候会产生额外的工作。
以上内容参考:百度百科-varchar
热心网友 时间:2022-04-29 18:51
4.0版本以下,varchar(50),指的是50字节,如果存放UTF8汉字时,只能存16个(每个汉字3字节) 5.0版本以上,varchar(50),指的是50字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放50个 其实最好的办法是在自己数据库中建个表试试可以放多少汉字,现在mysql都5.0已上了,varchar(50)是可以存50个汉字的
具体还是要看版本的:
4.0版本以下,varchar(100),指的是100字节,如果存放UTF8汉字时,只能存33个(每个汉字3字节)
5.0版本以上,varchar(100),指的是100字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放100个。
mysql 数据库自身特点:
使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性
支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统
为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
4.支持多线程,充分利用CPU资源
5.优化的SQL查询算法,有效地提高查询速度
6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名
7.提供TCP/IP、ODBC和JDBC等多种数据库连接途径
8.提供用于管理、检查、优化数据库操作的管理工具
9.可以处理拥有上千万条记录的大型数据库
应用环境
与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQL Cluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。 目前Internet上流行的网站构架方式是LAMP(Linux+Apache+MySQL+PHP),即使用Linux作为操作系统,Apache作为Web服务器,MySQL作为数据库,PHP作为服务器端脚本解释器。由于这四个软件都是免费或开放源码软件(FLOSS),因此使用这种方式不用花一分钱(除开人工成本)就可以建立起一个稳定、免费的网站系统。
管理软件 可以使用命令行工具管理MySQL数据库(命令mysql 和 mysqladmin),也可以从MySQL的网站下载图形管理工具MySQL Administrator和MySQL Query Browser。
phpMyAdmin是由php写成的MySQL资料库系统管理程式,让管理者可用Web界面管理MySQL资料库。
phpMyBackupPro也是由PHP写成的,可以透过Web界面创建和管理数据库。它可以创建伪cronjobs,可以用来自动在某个时间或周期备份MySQL 数据库。
另外,还有其他的GUI管理工具,例如早先的mysql-front 以及 ems mysql manager,navicat 等等。
热心网友 时间:2022-04-29 20:26
4.0版本以下,varchar(50),指的是50字节,如果存放UTF8汉字时,只能存16个(每个汉字3字节)
5.0版本以上,varchar(50),指的是50字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放50个
MySQL 数据库的varchar类型在4.1以下的版本中的最大长度*为255,其数据范围可以是0~255或1~255(根据不同版本数据库来定)。在 MySQL5.0以上的版本中,varchar数据类型的长度支持到了65535,也就是说可以存放65532个字节的数据,起始位和结束位占去了3个字 节,也就是说,在4.1或以下版本中需要使用固定的TEXT或BLOB格式存放的数据可以使用可变长的varchar来存放,这样就能有效的减少数据库文 件的大小。
MySQL 数据库的varchar类型在4.1以下的版本中,nvarchar(存储的是Unicode数据类型的字符)不管是一个字符还是一个汉字,都存为2个字节 ,一般用作中文或者其他语言输入,这样不容易乱码 ;varchar: 汉字是2个字节,其他字符存为1个字节 ,varchar适合输入英文和数字。
4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节) ;5.0版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节 ;varchar(20)在Mysql4中最大也不过是20个字节,但是Mysql5根据编码不同,存储大小也不同,具体有以下规则:
a) 存储*
varchar 字段是将实际内容单独存储在聚簇索引之外,内容开头用1到2个字节表示实际长度(长度超过255时需要2个字节),因此最大长度不能超过65535。
b) 编码长度*
字符类型若为gbk,每个字符最多占2个字节,最大长度不能超过32766;
字符类型若为utf8,每个字符最多占3个字节,最大长度不能超过21845。
若定义的时候超过上述*,则varchar字段会被强行转为text类型,并产生warning。
c) 行长度*
导致实际应用中varchar长度*的是一个行定义的长度。 MySQL要求一个行的定义长度不能超过65535。若定义的表长度超过这个值,则提示
ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs。