测试结论
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
相关推荐
对于非BLOB和TEXT字段,MySQL需要为每个字段创建索引,这可能导致行尺寸超出限制。 非大字段通常指的是VARCHAR、CHAR、INT、DATE等类型。VARCHAR是一种可变长度的字符串类型,它只存储实际输入的字符数量加上一个...
在MySQL数据库中,当尝试更新一个包含`TEXT`字段的记录时,可能会遇到"Row size too large"的错误。这个错误通常发生在试图创建或更新的行超过了存储引擎所允许的最大行大小。在这种情况下,错误信息会指出需要将...
2. 数据类型:MySQL支持多种数据类型,如整数类型(TINYINT、INT、BIGINT)、浮点类型(FLOAT、DOUBLE)、字符串类型(CHAR、VARCHAR、TEXT)、日期和时间类型(DATE、TIME、DATETIME、TIMESTAMP)等。 3. SQL语言...
在安装与配置MySQL后,我们需要熟悉数据类型,如整数类型(TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT)、浮点数类型(FLOAT、DOUBLE)、字符串类型(CHAR、VARCHAR、TEXT)、日期和时间类型(DATE、TIME、DATETIME...
MySQL是一种广泛使用的开源关系型数据库管理系统,其设计目标是提供高效、可靠且易于维护的数据存储解决方案。本总结将深入探讨MySQL的基础知识,包括安装与配置、数据类型、表的创建与管理、SQL查询语言、索引与...
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. 圆...
22. **文本字段处理**:尽量将TEXT类型改为VARCHAR(255),新版本MySQL支持更大的VARCHAR长度,以代替TEXT。 23. **更新频繁的字段**:从更新频繁的表中分离出大字段,以减少查询和更新时的负担。 24. **行长度控制...
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的基础知识点,内容包含其在淘宝的应用概况、常见操作、数据类型、SQL优化方法以及InnoDB索引等方面。了解这些知识对初学者来说,有助于快速掌握MySQL的基本使用与优化技巧。 一、淘宝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. 圆...
3. 数据类型:MySQL支持多种数据类型,如数值类型(INT、FLOAT、DECIMAL)、字符串类型(VARCHAR、TEXT)、日期时间类型(DATE、TIME、DATETIME)等。 二、数据库管理 1. 创建与删除:使用CREATE DATABASE语句创建...
BLOB和TEXT类型 11.4.4. ENUM类型 11.4.5. SET类型 11.5. 列类型存储需求 11.6. 选择正确的列类型 11.7. 使用来自其他数据库引擎的列类型 12. 函数和操作符 12.1. 操作符 12.1.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. 圆...
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. 操作符优先级 ...
- **避免使用text和blob类型**:如果必须使用,建议将这些类型的数据存储在扩展表中。 - **年份存储**:使用YEAR类型存储年份。 - **字段非空设置**:建议字段定义为NOT NULL,并设置默认值。 - **适度使用高级功能*...
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. 圆...
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. 操作符优先级 ...