报错信息:Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535

向mysql的表插件一个字段 类型为text时,或修改一个字段类型为text时,报出上面的错误。其实我对这个错误的原因理解也不是很深,给出一些我查到的解释吧

大意是数据表中有一个设定长度为64K的字段索引,当表中字段(不知道是字段名字还是什么)不能超过这个长度,65,535所说明的是针对的是整个表的非大字段类型的字段的bytes总合。(网上查到的)

我自己的理解(也不是很清楚了,大家指出来吧):

我的理解跟上查到最后一句话的意思差不多,就是非大字段类型的字段的bytes总和大于64K了,这个字段的bytes总和是什么呢?我还是当他理解成字段的名字长总的总和吧。非大字段是指那些字段呢,我觉得是varchar字段类型的字段,他们的名字总和大于64K,超出mysql的检索大小存储空间时就会报错。

varchar我来简单说下吧,在旧版5版本前varchar 最大存储字符数是255 (说法不算科学有兴趣的自己查),在5版后 varchar就是可变长度 ,就是按实际存储数据的多少去划分占用的存储空间,比如varchar类型内的数据有50个那么它占用的存储空间可能就是51个  有1个是占位符用于记录存了多少个字符。(也许不是字段名字占了64k,而是这个字段内记录占位长度的太多了,超过了64k这个值)就是说,你自己看看是不是你数据表里用varchar的字段类型用得太多了。

确实是varchar用得太多了,怎么办呢,其实上面报错的语句就有说明,可以将属性转为text 或 blobs 。行不行你们自己试下吧。

为什么我的数据表上有那么多varchar呢,因为他是实际长度的感觉可以省点存储空间,如给varchar(300)但我实际在这个字段存了10个字,那其实也只是占用了11个字符存储空间,最大到300个字符。

我的解决方法:

  将表中varchar(N) 中N设定小于255的属性的字段,修改属性为tinytext 。tinytext 在存储时总是占用255个字符。是固定的占着,最大能保存的字符也只有255个。所以如果varchar(N) 这个N值特别少就可以用tinytext进行代替。char这个大家自己考虑下能不能用吧。

mysql 报Row size too large 65535 原因与解决方法的更多相关文章

  1. MySQL 实例空间使用率过高的原因和解决方法

    用户在使用 MySQL 实例时,会遇到空间使用告警甚至超过实例限额被锁定的情况.在 RDS 控制台的实例基本信息中,即会出现如下信息: 本文将介绍造成空间使用率过高的常见原因及其相应的解决方法.对于M ...

  2. spring事务(Transaction )报 marked as rollback-only异常的原因及解决方法

    很多朋友在使用spring+hibernate或mybatis等框架时经常遇到报Transaction rolled back because it has been marked as rollba ...

  3. Mysql并发时经典常见的死锁原因及解决方法

    1.    mysql都有什么锁 MySQL有三种锁的级别:页级.表级.行级. 表级锁:开销小,加锁快:不会出现死锁:锁定粒度大,发生锁冲突的概率最高,并发度最低. 行级锁:开销大,加锁慢:会出现死锁 ...

  4. sharepoint报HRESULT:0x80131904的错误的原因和解决方法

    在新建文件库的时候出现的.下上传文件和更改权限,都是在报这个HRESULT:0x80131904的错误,基本所有操作都报同一个错误,如下图: 错误原因 这个问题其实就是:sharepoint配置文件( ...

  5. oracle 11g R2安装报错ORA-00604及ORA-06553的原因及解决方法

    10月31日PO主打算装oracle 11g R2,于是通过QQ旋风离线下载功能从oracle官网的链接下载了win32_11gR2_database_1of2.zip和win32_11gR2_dat ...

  6. MySQL的Illegal mix of collationsy异常原因和解决方法

    原创 2008年12月25日 11:54:00 标签: mysql / collation / character / variables / database / server   今天在使用数据库 ...

  7. Jquery.ajax报parseerror Invalid JSON错误的原因和解决方法:不能解析

    (默认: 自动判断 (xml 或 html)) 请求失败时调用时间.参数有以下三个:XMLHttpRequest 对象.错误信息.(可选)捕获的错误对象.如果发生了错误,错误信息(第二个参数)除了得到 ...

  8. Mysql [Err] 1118 - Row size too large

    首先声明,对MySQL不懂,很多都不知道原因 设计了一个表,里面很多text字段,然后填进去的东西太多(用的是Python的MySQLdb),报错: _mysql_exceptions.Operati ...

  9. mysql触发器应用和创建表错误代码: 1118 Row size too large. 解决

    1.针对数据库查询问题的方便,可以建立重要表的log备份记录表,在主表的添加,修改,删除添加触发器,修改触发器增加触发字段的点,限制条件. 数据库log表查问题比从线上多台服务器上下载日志文件相对方便 ...

随机推荐

  1. 内核映像的形成 —— KBuild体系

    1. http://blog.csdn.net/yunsongice/article/details/6046537 2. http://blog.csdn.net/yunsongice/articl ...

  2. [AngularJS] Directive with Transcluded Elements

    Create a wrapWith directive using advanced transclusion techniques. transclude - compile the content ...

  3. iOS开发——网络Swift篇&NSURL进行数据请求(POST与GET)

    NSURL进行数据请求(POST与GET)   使用Swift进行iOS开发时,不可避免的要进行远程的数据获取和提交. 其数据请求的方式既可能是POST也可能是GET.同不管是POST还是GET又可以 ...

  4. setAnimationTransition:forView:cache: 运行动画时背景色问题

    首先我描写叙述一下问题:当我从一个view到另外一个view的时候? 解答:这个问题的解决还须要看setAnimationTransition:forView:cache: 官方Api,官方是这样说的 ...

  5. xcode 3.x版本中的Executables 到xcode 4.x中怎么找不到了?

    转自:http://zhidao.baidu.com/question/327868169.html 1 在Scheme处选择Edit Scheme 2 点击Run(Debug) 3 在Argumen ...

  6. 【ZZ】编程能力层次模型

    http://blog.csdn.net/shendl/article/details/43835421 前言 程序员的编程技能随着经验的积累,会逐步提高.我认为编程能力可以分为一些层次. 下面通过两 ...

  7. apache 配置order allow deny讲解

    http://www.111cn.net/phper/apache/43025.htm

  8. javaweb学习总结一(eclipse常用快捷键、debug调试以及junit测试框架)

    一:web的发展趋势1:C/S(客户端/服务器)结构向B/S(浏览器/服务器)结构发展,以后的电脑只需操作系统和浏览器即可.所有的服务都存储在服务器端,只需用户登录后从服务端同步数据,例如:看电影不需 ...

  9. [设计模式]<<设计模式之禅>>关于开闭原则

    开闭原则是Java世界里最基础的设计原则,它指导我们如何建立一个稳定的.灵活的系统,先来看开闭原则的定义: Software entities like classes,modules and fun ...

  10. C# 条形码识别

    目录: 一.识别库 二.从一张图片中提取多个条形码 三.注意事项 从博客园学了很多,本着分享的目的,希望后来者遇到类似问题时,不必重复造轮子,早点下班回家^-^. 一.识别库 目前主流的识别库主要有Z ...