blob存储二进制,text存储文本,前者可当做大个的varbinary,而后者可看成升级版的varchar(与long varchar等价);

两者都有4种子类型:tiny,normal(默认),medium和long,区别就在可存储的数据长度不一样;

而int更是有5个子类型:tiny(1字节),small(2字节),medium(3字节),normal(默认,4字节),big(8字节);

注:timestamp4字节,datatime8字节,date和time3字节;enum占用1-2个字节(最大存储65535个字段);

限制

1 创建索引时必须指定前缀;

2 不能指定default value;

3 使用临时表时必须为磁盘表,memory引擎不支持这两种字段;

4 只有前max_sort_length(默认1024)字节可参与排序;

行溢出

innodb采用B+树结构,每个数据页至少要存储两个记录(否则变成了链表),如果不能满足这个需求,则会出现行溢出,innodb只保留字段前20字节

(pre-plugin保留768字节),剩余数据分配新的数据页uncompress blob page;

行溢出只与记录长度有关系,即便行包含blob或text,若一个数据页可存储两条记录,也不会出现行溢出;

具体可参看《MySQL技术内幕-InnoDB存储引擎的》的4.4章节 innodb行记录格式;

对于pre-plugin,行溢出时保留每个字段的前768字节,如果保留的字节总数仍然超出数据页的一半大小,就会直接报错1030- Got error 139 from storage engine。譬如一个表建立11个text或varachar(1000)字段且行记录长度>8k,则会产生行溢出,保留在原数据页的记录长度=11*768>8k,此时不能再继续行溢出了,因此只能报错。

mysql text blob_mysql的text/blob和行溢出相关推荐

  1. 【MySQL经典案例分析】关于数据行溢出由浅至深的探讨

    本文由云+社区发表 一.从常见的报错说起 ​ 故事的开头我们先来看一个常见的sql报错信息: ​ 相信对于这类报错大家一定遇到过很多次了,特别对于OMG这种已内容生产为主要工作核心的BG,在内容线的存 ...

  2. mysql中blob_MySQL中的BLOB类型

    一.概念: BLOB (binary large object)二进制大对象,是一个可以存储二进制文件的容器. 在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型. BLOB是一个大文件, ...

  3. mysql中char,varchar,text

    1.char char最大长度是255字符,注意是字符数和字符集没关系. 1)可以有默认值, 2)尾部有空格会被截断 3)不管汉字.英文,还是其他编码,都可以存255字符 2.varchar 1)va ...

  4. mysql中char和text的区别_mysql中text与varchar与char的区别

    char类型 CHAR列的长度固定为创建表时声明的长度.长度可以为从0到255的任何值.当保存CHAR值时,在它们的右边填充空格以达到指定的长度.当检索到CHAR值时,尾部的空格被删除掉.在存储或检索 ...

  5. MYSQL中varchar和TEXT

    起因 引发原因:门店需求新增自提门店,自提门店需要加自提点图片,在渠道店上引入了图片地址img_url 的字段,字段值定义为text not null 但是因为text字段不能设置默认值,所以未设置默 ...

  6. MySQL数据库字段类型 text 超长报错问题解决方案

    把 字段类型 改为 longtext 即可,因为: 1.text字段类型:text字段类型的字节限制为65535字节. 2.longtext字段类型:longtext字段类型的字节限制为2147483 ...

  7. mysql groupby 拼接_mysql分组并多行拼接--group_concat和groupby的使用

    mysql分组并多行拼接--group_concat和groupby的使用 – 创建表结构 DROP TABLE IF EXISTS exe; CREATE TABLE exe ( id int(3) ...

  8. mysql影响行数解析_详解MySQL的数据行和行溢出机制

    一.行 有哪些格式? 你可以像下面这样看一下你的mysql行格式设置. 其实mysql的数据行有两种格式,一种就是图中的 compact格式,还有一种是redundant格式. compact是一种紧 ...

  9. MySQL的基本知识点,一千行命令概括

    原文地址:shockerli.net/post/1000-l- ,JavaGuide 对本文进行了简答排版,新增了目录. 作者:格物 非常不错的总结,强烈建议保存下来,需要的时候看一看. 基本操作 数 ...

最新文章

  1. poj 3007 Organize Your Train part II (哈希)
  2. ASP.NET Web API 基本操作(CRUD)
  3. 访问数组元素进行赋值
  4. win8.1 USB启动盘制作(不支持UEFI,不支持GPT分区)
  5. 重定向 12 21 解析
  6. nginx服务器开启缓存、反向代理
  7. 面向对象写选项卡、拖拽
  8. [html] 说说js代码写到html里还是单独写到js文件里哪个好?为什么?
  9. PyTorch 1.0 中文官方教程:聊天机器人教程
  10. python 调用mysql存储过程返回结果集
  11. oracle数据库sql查询,oracle数据库中常用经典SQL查询
  12. 百度内容审查做敏感词库筛选
  13. 判断题 错与对的 t、f 是什么意思
  14. 大数据在人力资源管理当中的应用
  15. 整理学习之深度迁移学习
  16. vue切换路由不重新渲染_Vue来回切换页面不重新加载 --keep-alive
  17. java-php-python-springboot志愿者服务平台计算机毕业设计
  18. 史上非常简单、快速的解决Excel导出遇到Excel导出错误
  19. CC2530芯片资料
  20. 模拟退火的一些个人见解

热门文章

  1. 调用Com+时提示找不到文件
  2. 应用程序通用开发框架
  3. 用DELPHI的RTTI实现对象的XML持久化 【转】
  4. Grub4Dos 安装Ubuntu 收藏
  5. pip install -r requirement.txt 后 提示No such file or directory: ‘requirements.txt‘
  6. 递归1:二叉搜索树的范围和
  7. 常用的开源视音频解码软件库
  8. Ubuntu系统rm命令删除文件没有提示,怎么办?
  9. @EnableDiscoveryClient
  10. 数据结构:平衡二叉树概念、旋转