`

mysql text 字段过多解决方法

 
阅读更多

测试结论
mysql版本 5.1
表类型: innodb, row_format=compact (这是默认的行格式)

插入超过10个blob, blob的数据量很小(<768字节), 插入成功。
插入超过10个blob, blob的数据量很大(>768字节), 插入失败:报 Got error 139 from storage engine。

注意,如果mysql服务器版本是5.1, innodb_file_format选项不存在, 也就无从谈起Barracuda格式。 设置row_format=dynamic也是没意义的。

mysql版本 5.5
表类型: innodb, row_format=compact (这是默认的行格式)
插入超过10个blob, blob的数据量很大(>768字节), 插入失败:报 Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.

表类型: innodb, row_format=dynamic (这是innodb的新文件存储格式Barracuda所支持的行格式)
插入超过10个blob, blob的数据量很大(>768字节), 插入成功

备注:
1) 实际测试测试我用的每个字段长度都是100K+
2) 对于mysql5.5, 虽然支持Barracuda。但是默认使用的还是老的格式:Antelope
除非在mysql的配置里面my.cnf修改:
innodb_file_per_table = 1
innodb_file_format = Barracuda
或者set global 命令动态的修改:
SET GLOBAL innodb_file_format=barracuda;
SET GLOBAL innodb_file_per_table=1;

注意:
1) 修改后的innodb_file_format格式, 只影响后续创建的表。 也就是后续创建的表,可以支持把row_format设为dynamic
2) SET GLOBAL 只是在mysql服务器运行期间有效,重启后innodb_file_format还原为原来的格式。
3) 判断一个表是否支持超过10个blob的字段的简单办法:
show table status like 't1' \G
查看 Row_format , 如果是Compact, 必定不支持, 如果是dynamic, 则支持。

 

SHOW TABLE STATUS LIKE 'eventanalysis%';

http://www.cnblogs.com/gaizai/archive/2012/09/20/2695663.html

http://www.2cto.com/database/201405/302228.html

分享到:
评论

相关推荐

    Mysql 报Row size too large 65535 的原因及解决方法

    对于非BLOB和TEXT字段,MySQL需要为每个字段创建索引,这可能导致行尺寸超出限制。 非大字段通常指的是VARCHAR、CHAR、INT、DATE等类型。VARCHAR是一种可变长度的字符串类型,它只存储实际输入的字符数量加上一个...

    更新text字段时出现Row size too large报错应付措施

    在MySQL数据库中,当尝试更新一个包含`TEXT`字段的记录时,可能会遇到"Row size too large"的错误。这个错误通常发生在试图创建或更新的行超过了存储引擎所允许的最大行大小。在这种情况下,错误信息会指出需要将...

    mysql基础知识和mysql优化整理

    2. 数据类型:MySQL支持多种数据类型,如整数类型(TINYINT、INT、BIGINT)、浮点类型(FLOAT、DOUBLE)、字符串类型(CHAR、VARCHAR、TEXT)、日期和时间类型(DATE、TIME、DATETIME、TIMESTAMP)等。 3. SQL语言...

    MYSQL教程02 MYSQL教程02 MYSQL教程02

    在安装与配置MySQL后,我们需要熟悉数据类型,如整数类型(TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT)、浮点数类型(FLOAT、DOUBLE)、字符串类型(CHAR、VARCHAR、TEXT)、日期和时间类型(DATE、TIME、DATETIME...

    Mysql基础总结思维导图

    MySQL是一种广泛使用的开源关系型数据库管理系统,其设计目标是提供高效、可靠且易于维护的数据存储解决方案。本总结将深入探讨MySQL的基础知识,包括安装与配置、数据类型、表的创建与管理、SQL查询语言、索引与...

    MySQL 5.1中文手冊

    11.4.3. BLOB和TEXT类型 11.4.4. ENUM类型 11.4.5. SET类型 11.5. 列类型存储需求 11.6. 选择正确的列类型 11.7. 使用来自其他数据库引擎的列类型 12. 函数和操作符 12.1. 操作符 12.1.1. 操作符优先级 12.1.2. 圆...

    mysql官方中文参考手册

    11.4.3. BLOB和TEXT类型 11.4.4. ENUM类型 11.4.5. SET类型 11.5. 列类型存储需求 11.6. 选择正确的列类型 11.7. 使用来自其他数据库引擎的列类型 12. 函数和操作符 12.1. 操作符 12.1.1. 操作符优先级 12.1.2. 圆...

    mysql开发设计规范

    22. **文本字段处理**:尽量将TEXT类型改为VARCHAR(255),新版本MySQL支持更大的VARCHAR长度,以代替TEXT。 23. **更新频繁的字段**:从更新频繁的表中分离出大字段,以减少查询和更新时的负担。 24. **行长度控制...

    MySQL 5.1官方简体中文参考手册

    11.4.3. BLOB和TEXT类型 11.4.4. ENUM类型 11.4.5. SET类型 11.5. 列类型存储需求 11.6. 选择正确的列类型 11.7. 使用来自其他数据库引擎的列类型 12. 函数和操作符 12.1. 操作符 12.1.1. 操作符优先级 12.1.2. 圆...

    mysql快速入门(基础)

    本篇文章将详细介绍MySQL的基础知识点,内容包含其在淘宝的应用概况、常见操作、数据类型、SQL优化方法以及InnoDB索引等方面。了解这些知识对初学者来说,有助于快速掌握MySQL的基本使用与优化技巧。 一、淘宝MySQL...

    MySQL 5.1参考手册

    11.4.3. BLOB和TEXT类型 11.4.4. ENUM类型 11.4.5. SET类型 11.5. 列类型存储需求 11.6. 选择正确的列类型 11.7. 使用来自其他数据库引擎的列类型 12. 函数和操作符 12.1. 操作符 12.1.1. 操作符优先级 12.1.2. 圆...

    Mysql速查手册HandBood系列(By FengGe整理)

    3. 数据类型:MySQL支持多种数据类型,如数值类型(INT、FLOAT、DECIMAL)、字符串类型(VARCHAR、TEXT)、日期时间类型(DATE、TIME、DATETIME)等。 二、数据库管理 1. 创建与删除:使用CREATE DATABASE语句创建...

    mysql5.1中文手册

    BLOB和TEXT类型 11.4.4. ENUM类型 11.4.5. SET类型 11.5. 列类型存储需求 11.6. 选择正确的列类型 11.7. 使用来自其他数据库引擎的列类型 12. 函数和操作符 12.1. 操作符 12.1.1. 操作符...

    MySQL 5.1参考手册 (中文版)

    11.4.3. BLOB和TEXT类型 11.4.4. ENUM类型 11.4.5. SET类型 11.5. 列类型存储需求 11.6. 选择正确的列类型 11.7. 使用来自其他数据库引擎的列类型 12. 函数和操作符 12.1. 操作符 12.1.1. 操作符优先级 12.1.2. 圆...

    MySQL 5.1参考手册中文版

    11.4.3. BLOB和TEXT类型 11.4.4. ENUM类型 11.4.5. SET类型 11.5. 列类型存储需求 11.6. 选择正确的列类型 11.7. 使用来自其他数据库引擎的列类型 12. 函数和操作符 12.1. 操作符 12.1.1. 操作符优先级 ...

    MySQL开发与操作规范

    - **避免使用text和blob类型**:如果必须使用,建议将这些类型的数据存储在扩展表中。 - **年份存储**:使用YEAR类型存储年份。 - **字段非空设置**:建议字段定义为NOT NULL,并设置默认值。 - **适度使用高级功能*...

    MySQL数据库开发的三十六条军规_石展_完整

    表的字段数量应该精简,过多的字段不仅会增加I/O操作的成本,还会影响全表扫描的速度,降低表修复效率。一个表的字段数建议控制在20到50个之间,以保持较高的开发效率和ALTER TABLE操作的速度。 #### 4. 平衡范式与...

    MySQL5.1参考手册官方简体中文版

    11.4.3. BLOB和TEXT类型 11.4.4. ENUM类型 11.4.5. SET类型 11.5. 列类型存储需求 11.6. 选择正确的列类型 11.7. 使用来自其他数据库引擎的列类型 12. 函数和操作符 12.1. 操作符 12.1.1. 操作符优先级 12.1.2. 圆...

Global site tag (gtag.js) - Google Analytics