MySQL报错1118,数据类型长度过长问题及解决

 更新时间:2024年10月10日 10:36:13   作者:思祺班  
在使用MySQL过程中,常见的一个问题是报错1118,这通常发生在创建表时,错误提示为“Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual

MySQL报错1118,数据类型长度过长

MySQL是世界上最流行的开源关系型数据库管理系统。

MySQL提供了许多功能,从简单的数据查询到复杂的数据操作和管理。

在MySQL的使用过程中,我们时常会遇到各种问题,其中一个比较常见的问题是报错1118。

接下来,我们将讲解MySQL报1118错误的原因和解决方法。

1118错误通常会在创建表的时候出现,

错误提示为

“Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs”。

这个错误的意思是,在创建表时,某些列的长度相加超过了MySQL所允许的最大行长度65535。在计算行长度时,除去BLOB类型的列的长度,还要加上行存储的开销。

出现这个错误的原因是我们创建的表结构中包含了太多的长文本类型(如VARCHAR、TEXT),而没有足够的空间来存放其它列。

对于VARCHAR类型的列,MySQL需要为其分配额外的空间,以适应其变化的字符串长度。所以,当我们在表中使用大量VARCHAR类型的长文本时,会导致出现1118错误。

解决这个问题

我们可以采用两种方法:

一种是使用TEXT或BLOB类型的列替换VARCHAR类型的列。

由于TEXT和BLOB类型的列不需要额外的存储空间,所以可以避免出现1118错误。

但是需要注意的是,这些列不支持索引、排序、或者通配符查询。

/**
*创建表的时候,大概有170+的字段大部分的字段varchar(255)的长度,
之前是以为字段名太长的文字,然后到网上查找把varchar替换成text类型,也没有尝试,
我直接删除一般的字段,表创建成功,
因为MYSQL所允许的最大长度为65535这个只是虚拟的长度但是实际长度完全没有这么长,
我估计也只有5万多长度
因为字段都很重要,所以我把所有的255长度全部更改成100长度最终创建表成功!!!
*/

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • MySQL与PHP的基础与应用专题之增删改查

    MySQL与PHP的基础与应用专题之增删改查

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,本系列将带你掌握php与mysql的基础应用,本篇从数据库的增删改查开始
    2022-02-02
  • mysql查询过去24小时内每小时数据量的方法(精确到分钟)

    mysql查询过去24小时内每小时数据量的方法(精确到分钟)

    我们经常遇到类似这样的需求,查询最近N秒、N分钟、N小时的数据及N天的数据,下面这篇文章主要给大家介绍了关于mysql查询过去24小时内每小时数据量(精确到分钟)的相关资料,需要的朋友可以参考下
    2023-03-03
  • MySQL常用登录命令小结

    MySQL常用登录命令小结

    本文主要介绍了MySQL常用登录命令小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • SQL中limit函数语法与用法(MYSQL获取限制某行数据)

    SQL中limit函数语法与用法(MYSQL获取限制某行数据)

    limit是MySql的内置函数,一般用于查询表中记录的条数,作用是用于限制查询条数,下面这篇文章主要给大家介绍了关于SQL中limit函数语法与用法的相关资料,详细讲了MYSQL获取限制某行数据的方法,需要的朋友可以参考下
    2022-08-08
  • MySQL修改默认存储引擎的实现方法

    MySQL修改默认存储引擎的实现方法

    下面小编就为大家带来一篇MySQL修改默认存储引擎的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • Mysql并发常见的死锁及解决方法

    Mysql并发常见的死锁及解决方法

    死锁是在并发执行的过程中,两个或多个事务相互等待对方释放资源的情况,本文主要介绍了Mysql并发常见的死锁及解决方法,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • MySQL优化之表结构优化的5大建议(数据类型选择讲的很好)

    MySQL优化之表结构优化的5大建议(数据类型选择讲的很好)

    很多人都将 数据库设计范式 作为数据库表结构设计“圣经”,认为只要按照这个范式需求设计,就能让设计出来的表结构足够优化,既能保证性能优异同时还能满足扩展性要求
    2014-03-03
  • mysql免安装版配置步骤详解分享

    mysql免安装版配置步骤详解分享

    这篇文章主要介绍了mysql免安装版配置步骤详解,提供了二个网友的安装方法,大家可以参考使用
    2013-12-12
  • 4种MySQL数据同步ES方案详解

    4种MySQL数据同步ES方案详解

    这篇文章主要给大家分享介绍了关于4种MySQL数据同步ES方案的相关资料,MySQL是一种常用的关系型数据库,而Elasticsearch是一种为搜索和分析而设计的分布式全文搜索引擎,需要的朋友可以参考下
    2023-10-10
  • MySQL索引事务详细解析

    MySQL索引事务详细解析

    这篇文章主要介绍了MySQL数据库索引事务,索引是为了加速对表中数据行的检索而创建的一种分散的存储结;事物是属于计算机中一个很广泛的概念,一般是指要做的或所做的事情,下面我们就一起进入文章了解具体内容吧
    2022-01-01

最新评论