MySQL 单条记录长度最大65535

今天设计表结构,加了几个字段,结果报错了

当时的情况是,表中本来已经有50个字段了, 这次的需求需要添加18个字段,我将18个字段全部设置成vachar 255 。 结果报错了。不明白什么原因

这个错误用百度翻译出来就是    “行太大了。在规模最大的线。除了blobs,65535。”

到底是怎么一回事呢?难道单条记录有限制?

后来将这18个字段的长度都设置成了100,创建成功了

网上看到下面这段文字

MySQL的记录长度

MySQL默认规定一条记录最大的长度是65535字节,所有的字段加在一起所占的字节数不能超过65535。但是MySQL中字段的长度有的时使用字节来规定int,有些字段类型是使用字符个数来规定的。

1个汉字所占的是多少?根据字符编码而定,

latin1字符集1个字母占据1个字节。

gbk字符集1个汉字占据2个字节

utf8字符集1个汉字占据3个字节

还需要考虑varchar的记录长度,需要使用1或2个字节来记录。

还需要考虑null值的问题。

时间: 2024-10-25 16:23:15

MySQL 单条记录长度最大65535的相关文章

MySQL的记录长度

MySQL默认规定一条记录最大的长度是65535字节,所有的字段加在一起所占的字节数不能超过65535.但是MySQL中字段的长度有的时使用字节来规定int,有些字段类型是使用字符个数来规定的. 1个汉字所占的是多少?根据字符编码而定, latin1字符集1个字母占据1个字节. gbk字符集1个汉字占据2个字节 utf8字符集1个汉字占据3个字节 还需要考虑varchar的记录长度,需要使用1或2个字节来记录. 还需要考虑null值的问题.

MySQL数据库8(八)列属性

列属性 列属性又称之为字段属性,在mysql中一共有6个属性:null,默认值,列描述,主键,唯一键和自动增长. null属性 NULL属性代表字段为空 如果对应的值为YES,表示该字段可以为NULL. 注意: 1.在设计表的时候,尽量不要让数据为空. 2.MySQL的记录长度为65535字节,如果有一个表中有字段允许为NULL,那么系统就会设计保留一个字节来存储NULL,最终有效存储长度为65534个字节. 默认值 default:默认值,当字段被设计的时候,如果允许默认条件下,用户不进行数据

09、MySQL—列属性

列属性又称之为字段属性,在mysql中一共有6个属性:null,默认值,列描述,主键,唯一键和自动增长 1.Null属性 NULL属性:代表字段为空 如果对应的值为YES表示该字段可以为NULL 注意: (1) 在设计表的时候,尽量不要让数据为空 (2) Mysql的记录长度为65535个字节,如果一个表中有字段允许为NULL,那么系统就会设计保留一个字节来存储NULL,最终有效存储长度为65534个字节. 2.默认值 Default:默认值,当字段被设计的时候,如果允许默认条件下,用户不进行数

MySQL数据库8(七)列类型

列类型 整数类型 tinyint 迷你整型,系统采用一个字节来保存的整型,一个字节=8byte,最大能表示的数据是0-255. smallint 小整型,系统采用两个字节来保存的整型,能表示0-65535之间的整型 mediumint 中整型,采用三个字节来保存数据 int 整型,(标准整型),采用四个字节来保存数据. bigint 大整型,采用八个字节来保存数据. 实际应用中,应该根据对应的数据范围来选定对应的整型类型,通常使用的比较多的是tinyint和int. 无符号标识设定 无符号,表示

MySQL数据库优化法则总结

网上关于SQL优化的教程很多,但是比较杂乱.近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正以及补充 这篇文章我花费了大量的时间查找资料.修改希望大家阅读之后,感觉好的话推荐给更多的人,让更多的人看到.纠正以及补充. 要正确的优化SQL,我们需要快速定位能性的瓶颈点,也就是说快速找到我们SQL主要的开销在哪里?而大多数情况性能最慢的设备会是瓶颈点,如下载时网络速度可能会是瓶颈点,本地复制文件时硬盘可能会是瓶颈点,为什么这些一般的工作我们能快速确认瓶颈点呢,因为我们对

07、MySQL—时间日期类型

时间日期类型 1.Date 日期类型:系统使用三个字节来存储数据,对应的格式为:YYYY-mm-dd,能表示的范围是从1000-01-01 到9999-12-12,初始值为0000-00-00 2.Time 时间类型:能够表示某个指定的时间,但是系统同样是提供3个字节来存储,对应的格式为:HH:ii:ss,但是mysql中的time类型能够表示时间范围要大的多,能表示从-838:59:59~838:59:59,在mysql中具体的用处是用来描述时间段. 3.Datetime 日期时间类型:就是将

mysql open_files_limit值更改无效

数据库出现问题显示too many files,导致数据库无法访问.出现这个问题,肯定是文件描述符打开过大了.查下数据库的结果为: show variables like "%file%";  open_files_limit                      | 1024 查看系统ulimit的值: [[email protected] ~]# ulimit -n 65535 系统的值是正确的.然后修改/etc/my.cnf配置文件,添加 open_files_limit=6

Linux(CentOS 7)+ Nginx(1.10.2)+ Mysql(5.7.16)+ PHP(7.0.12)完整环境搭建

首先安装Linux系统,我以虚拟机安装来做示例,先去下载 VitualBox,这是一款开源的虚拟机软件,https://www.virtualbox.org 官网地址.或者是VMware,www.vmware.com,不过这个软件是收费的.当然同时还要去下载一个Linux镜像,我下载是CentOS 7系统,https://www.centos.org/download 下载好了之后打开虚拟机,我用的是VMware,选择创建自定义虚拟机: 继续下一步: 点击完成. 看到这个界面后,点击CD/DVD

MySQL——MySQL支持的数据类型总结

简介 每一个常量.变量和参数都有数据类型,它用来指定一定的存储格式.约束和有效范围.MySQL提供了多种数据类型,主要包括数值型.字符串类型.日期和时间类型.不同的MySQL版本支持的数据类型可能会稍有不同,用户可以通过查询相应版本的帮助文件来获得具体信息.在MySQL的命令行窗口输入:? int命令,会看到如下输出: mysql> ? int Name: 'INT' Description: INT[(M)] [UNSIGNED] [ZEROFILL] A normal-size intege