mysql怎么看长度最大 mysql怎么看数据库大小

MYSQL的最大存储数据量,怎么判断?一般没有最大限制,最多也就是单字段mysql怎么看长度最大的长度有限制,那跟字段的数据类型有关,而对于数据表的大小一般不要超过2G,超过mysql怎么看长度最大了效率会比较慢,建议分开多表存 。
mysql VARCHAR的最大长度到底是多少以前一直都认为有两个字节来记录长度(长度小也可以用一个字节记录),所以这个问题当时觉得就挺无聊的不过后来群里有人给了解释,突然才发现原来事情不是这么简单MYSQL COMPACT格式,每条记录有一个字节来表示NULL字段分布,如果表中有字段允许为空,则最大只能定到65532,如果没有字段允许为空 , 则那个字节可以节省 , 最大可以定义到65533 , 不知道是不是这个原因于是上网看了些资料,又在本地做了些实验,原来vachar的最大长度真的是不定的(根据是否有非空字段来决定)在本地做了下实验,innodb latin的环境
复制代码 代码如下:
-- success
drop table if exists test;
create table test(name varchar(65533) not null)engine=innodb DEFAULT CHARSET=latin1-- too large
drop table if exists test;
create table test(name varchar(65533))engine=innodb DEFAULT CHARSET=latin1对于第二种情况,允许空字段的时候是不能加到65533的长度的,最大只能到65532,到底应该是引文的那种说法 。
网上也有人做了类似的实验,参考复制代码 代码如下:
name varchar(100) not null will be 1 byte (length)up to 100 chars (latin1)name varchar(500) not null will be 2 bytes (length)up to 500 chars (latin1)name varchar(65533) not null will be 2 bytes (length)up to 65533 chars (latin1)name varchar(65532) will be 2 bytes (length)up to 65532 chars (latin1)1 null byte总结一下 , 原来mysql的vachar字段的类型虽然最大长度是65535,但是并不是能存这么多数据,最大可以到65533(不允许非空字段的时候),当允许非空字段的时候只能到65532 。
以下是其它网友的补充说明:
这不是一个固定的数字 。本文简要说明一下限制规则 。
strlen 计算字符串长度,一个中文当2字符
mb_strlen根据它的字符编码模式 , 统计字符quotcount计算数组中的元素数目或对象中的属性个数复制代码 代码如下:
?php
header('Content-Type:text/html;charset=UTF-8');$string1="谢春业";//定义中文字符变量
$string2="xcy";//定义英文字符变量
//直接输出看看他们的长度
echo strlen($string1);
echo "/br";
echo strlen($string2);
echo "/br";
//用 php 多字节扩展函数 mb_strlen试试看
echo mb_strlen($string1,'utf8');
echo "/br";
echo mb_strlen($string2,'utf8');
echo "/br";
?
输出结果是:
9
3
3
3
1、限制规则
字段的限制在字段定义的时候有以下规则:
a) 存储限制
varchar 字段是将实际内容单独存储在聚簇索引之外,内容开头用1到2个字节表示实际长度(长度超过255时需要2个字节) , 因此最大长度不能超过65535 。
b) 编码长度限制
【mysql怎么看长度最大 mysql怎么看数据库大小】字符类型若为gbk,每个字符最多占2个字节,最大长度不能超过32766;字符类型若为utf8,每个字符最多占3个字节,最大长度不能超过21845 。
对于英文比较多的论坛,使用GBK则每个字符占用2个字节,而使用UTF-8英文却只占一个字节 。
若定义的时候超过上述限制,则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 tochange some columns to TEXT or BLOBs 。
2、计算例子
举两个例说明一下实际长度的计算 。
a) 若一个表只有一个varchar类型,如定义为
create table t4(c varchar(N)) charset=gbk;则此处N的最大值为(65535-1-2)/2= 32766 。
减1的原因是实际行存储从第二个字节开始';
减2的原因是varchar头部的2个字节表示长度;
除2的原因是字符编码是gbk 。
b) 若一个表定义为
create table t4(c int, c2 char(30), c3 varchar(N)) charset=utf8;则此处N的最大值为 (65535-1-2-4-30*3)/3=21812减1和减2与上例相同;
减4的原因是int类型的c占4个字节;
减30*3的原因是char(30)占用90个字节,编码是utf8 。
如果被varchar超过上述的b规则,被强转成text类型,则每个字段占用定义长度为11字节,当然这已经不是“varchar”了 。
MySQL如何查询某个字段长度最大的记录1、一般查询语句mysql怎么看长度最大:SELECT `lcontent` FROM `caiji_ym_liuyan`
查询数据mysql怎么看长度最大:
2、有些时候需要查询某个字段mysql怎么看长度最大的长度为多少时候才显示数据:
SQL语句:SELECT `lcontent` FROM `caiji_ym_liuyan` where
length(lcontent)=40
PS:在mysql中一个汉字等于3个字节mysql怎么看长度最大,所以查询mysql怎么看长度最大的时候需要转换一下
特别要注意的就时候对于字节的转换
MySQL中varchar的长度最大是?MySQL 数据库mysql怎么看长度最大的varchar类型在4.1以下的版本中的最大长度限制为255,其数据范围可以是0~255或1~255(根据不同版本数据库来定) 。在 MySQL5.0以上的版本中 , varchar数据类型的长度支持到mysql怎么看长度最大了65535,也就是说可以存放65532个字节的数据,起始位和结束位占去了3个字 节 , 也就是说,在4.1或以下版本中需要使用固定的TEXT或BLOB格式存放的数据可以使用可变长的varchar来存放,这样就能有效的减少数据库文 件的大小 。
MySQL 数据库的varchar类型在4.1以下的版本中,nvarchar(存储的是Unicode数据类型的字符)不管是一个字符还是一个汉字,都存为2个字节 ,一般用作中文或者其mysql怎么看长度最大他语言输入,这样不容易乱码;varchar:汉字是2个字节,其他字符存为1个字节,varchar适合输入英文和数字 。
4.0版本以下,varchar(20) , 指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节) mysql怎么看长度最大;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 。
---------------------------------------------------------------------
mysql的vachar字段的类型虽然最大长度是65535 , 但是并不是能存这么多数据,最大可以到65533(不允许非空字段的时候) , 当允许非空字段的时候只能到65532 。
Mysql中的varchar 如何设置最大长度mysql varchar(50)不管中文 还是英文 都是存50个的
MySQL5的文档,其中对varchar字段类型这样描述:varchar(m) 变长字符串 。M 表示最大列长度 。M的范围是0到65,535 。(VARCHAR的最大实际长度由最长的行的大小和使用的字符集确定 , 最大有效长度是65,532字节) 。
为何会这般变换?真是感觉MySQL的手册做的太不友好了,因为你要仔细的继续往下读才会发现这段描述:MySQL
5.1遵从标准SQL规范 , 并且不删除VARCHAR值的尾部空格 。VARCHAR保存时用一个字节或两个字节长的前缀 数据 。如果VARCHAR列声明的长度大于255,长度前缀是两个字节 。
好了,貌似懂了一点 。但具体他说的长度大于255时使用2个字节长度前缀,小学减法题:65535 - 2 = 65533啊 。不知道这些大牛如何计算的,暂且保留疑问吧?
注:我测试了一下使用UTF8编码,varchar的最大长度为21854字节 。
在mysql 5.0.45版本,数据库编码utf8下进行测试:varchar最长定义为21785 。也就是说不论字母、数字、汉字 , 只能放21785个 。
mysql 一张表中如何查询某个字段最长值的那条记录?1、一般查询语句:SELECT `lcontent` FROM `caiji_ym_liuyan`
查询数据:
2、有些时候需要查询某个字段mysql怎么看长度最大的长度为多少时候才显示数据:
SQL语句:SELECT `lcontent` FROM `caiji_ym_liuyan` where
length(lcontent)=40
PS:在mysql中一个汉字等于3个字节mysql怎么看长度最大 , 所以查询mysql怎么看长度最大的时候需要转换一下
特别要注意mysql怎么看长度最大的就时候对于字节mysql怎么看长度最大的转换
关于mysql怎么看长度最大和mysql怎么看数据库大小的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。

    推荐阅读