MYSQL BLOB 字段大小以及个数的限制測试。
測试结论
mysql版本号 5.1
表类型: innodb, row_format=compact (这是默认的行格式)
插入超过10个blob, blob的数据量非常小(<768字节), 插入成功。
插入超过10个blob, blob的数据量非常大(>768字节), 插入失败:报 Got error 139 from storage engine。
注意,假设mysqlserver版本号是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 仅仅是在mysqlserver执行期间有效,重新启动后innodb_file_format还原为原来的格式。
3) 推断一个表是否支持超过10个blob的字段的简单办法:
show table status like 't1' \G
查看 Row_format , 假设是Compact, 必然不支持, 假设是dynamic, 则支持。
MYSQL BLOB 字段大小以及个数的限制測试。的更多相关文章
- C#读取Mysql blob字段 (转帖)
http://blog.csdn.net/config_man/article/details/6123191 开发环境:Windows XP Professional SP3.VS2008.Winf ...
- 基于MySQL元数据的Hive的安装和简单測试
引言: Hive是一种强大的数据仓库查询语言,类似SQL,本文将介绍怎样搭建Hive的开发測试环境. 1. 什么是Hive? hive是基于Hadoop的一个数据仓库工具,能够将结构化的数据文件映射为 ...
- SpringMVC处理MySQL BLOB字段的下载
任务: uos.docfile的content字段是longblob类型,通过Web点击链接能下载到存储在这个字段里的文件.Web点击链接类似如下形式: http://localhost:8080/d ...
- SpringMVC处理MYSQL BLOB字段的上传
任务: uos.docfile的content字段是longblob类型的,通过页面将文件存储到这个字段里. 页面代码: <div class="box"> <d ...
- mysql BLOB字段转String的方法
1.通过sql直接转换 select CONVERT(GROUP_CONCAT(XXX) USING utf8 from usertable; 2.通过程序转换(注:本例用的是springmvc包装并 ...
- mysql创建、删除用户与授权(linux測试)
注:我的执行环境是SUSE Linux + mysql5.6 一.创建用户: 命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password'; ...
- MVC jsp+servlet+javabean 连接Mysql数据库測试demo
本文介绍的是怎样使用MVC架构去实现jsp+servlet+javabean连接数据库 首先我们应该了解什么是MVC: MVC包含三个部分 : ①View:由各种JSP页面组成. ②Controlle ...
- 什么是blob,mysql blob大小配置介绍
什么是blob,mysql blob大小配置介绍 作者: 字体:[增加 减小] 类型:转载 BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器.在计 ...
- MySQL中TEXT与BLOB字段类型的区别
这篇文章主要介绍了MySQL中TEXT与BLOB字段类型的区别,本文总结了6大区别,需要的朋友可以参考下 在MySQL中有两个字段类型容易让人感觉混淆,那就是TEXT与BLOB,特别是自己写博客程 ...
随机推荐
- javascript里的post和get有什么区别
FORM中的get post方法区别Form中的get和post方法,在数据传输过程中分别对应了HTTP协议中的GET和POST方法.二者主要区别如下: 1.Get是用来从服务器上获得数据,而Post ...
- python中os模块path.abspath()返回的并不是绝对值,而是个错误的不存在的拼接地址
附截图: 当前路径: a=r'D:\PCsync\python\commands' 为绝对路径 遍历出来的4条应该是D:\PCsync\python\commands\commands.py... ...
- js控制元素的显示与隐藏
<body class="easyui-layout"> <div id = "centerId" data-options="re ...
- (转载)有关反演和gcd
tips : 积性函数 F (n) = Π F (piai ) 若F (n), G (n)是积性函数则 F (n) * G (n) Σd | n F (n) 是积性函数 n = Σd | n φ ( ...
- Office启动加载vs。。。项
PowerPoint: 选项->加载项->Chinese Translation Addin->管理[COM加载项]转到->取消Chinese Translation Addi ...
- c语言中 int *p = NULL 和 *p = NULL 有什么区别
1. int *p = NULL; 代表定义一个指向整型变量的指针p,然后p的值设为NULL,也就是设为0:用另一种方式说,就是对一个刚定义的指向整型变量的指针,赋初始值,让其指向0地址. 2. *p ...
- [面试题] for() while() 条件判断 赋值问题
http://group.jobbole.com/7963/#comm-11311 [题目]:下列for循环的循环体执行次数为 for(int i=10, j=1; i=j=0; i++, j--)( ...
- 如何在网页中显示pdf
用如下的html代码即可(例子): <div class="postBody"> <div id="cnblogs_post_body"> ...
- Linux shell命令
一.删除监听指定端口的进程: lsof -ti: 80 | xargs kill -9 -t: 输出pid -i:查看指定端口占用情况 二.查看可执行文件动态链接库相关信息 ldd <可执行文件 ...
- -Xms 和 -Xmx 不能设置的太大
之前我一直有一个疑问,就是-Xms 和 -Xmx不是设置的越大越好吗?现在才明白怎么回事. 通过在命令行中执行 java 或者启动某种基于 Java 的中间件来运行 Java 应用程序时,Java 运 ...