高性能mysql之慎用BLOB与TEXT
文章转自 https://blog.csdn.net/john1337/article/details/70919212
BLOB与TEXT是为了存储极大的字符串而设计的数据类型,采用二进制与字符串方式存储。mysql对待这两个类型可谓煞费苦心,mysql会把这两种类型的值当做一个独立的对象处理,存储引擎在存储时通常会做特殊处理,
当BLOB与TEXT的值太大时,InnoDB会使用专门的“外部”存储区域来进行存储,此时每个值在行内会采用1~4个自己存储指针,在外部存储区域存储实际值。
Mysql对BLOB与TEXT类型进行排序的处理上与其他类型不同,只针对最前面的max_sort_length自己进行排序,如果只需要对前面的更少的字节进行排序,那么可以通过设置max_sort_length参数或者substring(value,length)来截取部分字符串。
在实际使用中应该慎用这两个类型,尤其是会创建临时表的情况下,因为如果临时表大小超过max_heap_table_size或者tmp_table_size,就会将临时表存储在磁盘上,进而导致整体速度下降!
高性能mysql之慎用BLOB与TEXT的更多相关文章
- 《高性能MySQL》笔记-BLOB与TEXT
BLOB和TEXT都是为存储很大的数据而设计的字符串数据类型,分别采用二进制和字符方式存储. 实际上,它们分别属于两组不同的数据类型家族: 字符类型是TINYTEXT,SMALLTEXT,TEXT,M ...
- MySQL数据类型之BLOB与TEXT及其最大存储限制
https://blog.csdn.net/q3dxdx/article/details/51014357 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.n ...
- mysql中的blob和text区别
经过查询资料发现 除了blob 还有tinyblob longblob mediumblob 当然text还有tinytext mediumtext longtext 都是最为大的存储 本质区别主要是 ...
- 《高性能MySQL》笔记——MySQL建表数据类型的选择
前段时间看了<高性能MySQL>中的选择优化的数据类型,这里主要是做一下笔记. 首先数据选择有几个简单原则: 更小的通常更好.一般情况下,应该尽量使用可以正确存储数据的最小数据类型.例如只 ...
- Mysql BLOB和TEXT类型
BLOB是一个二进制大对象,可以容纳可变数量的数据.有4种BLOB类型:TINYBLOB.BLOB.MEDIUMBLOB和LONGBLOB.它们只是可容纳值的最大长度不同. A binary la ...
- [MySQL-1] mysql error 1101 blob/text column can't have a default value
在MySQL Query Browser上创建一个含有TEXT类型的字段,创建不成功,报错:mysql error 1101 blob/text column can't have a default ...
- 【mysql】关于InnoDB表text blob大字段的优化
最近在数据库优化的时候,看到一些表在设计上使用了text或者blob的字段,单表的存储空间已经达到了近100G,这种情况再去改变和优化就非常难了 一.简介 为了清楚大字段对性能的影响,我们必须要知道i ...
- Mysql BLOB、BLOB与TEXT区别及性能影响、将BLOB类型转换成VARCHAR类型
在排查公司项目业务逻辑的时候,见到了陌生的字眼,如下图 顺着关键字BLOB搜索,原来是Mysql存储的一种类型,从很多文章下了解到如下信息 了解 MySQL中,BLOB字段用于存储二进制数据,是一个可 ...
- MySql中Blob与Text的区别
BLOB是一个二进制大对象,可以容纳可变数量的数据.有4种BLOB类型:TINYBLOB.BLOB.MEDIUMBLOB和LONGBLOB.它们只是可容纳值的最大长度不同. 有4种TEXT类型:TIN ...
随机推荐
- 基于Visual Studio .NET2015的单元测试
基于Visual Studio .NET2015的单元测试 1. 在Visual Studio .NET2015中创建任意项目. 2. 在某个公共类的公共方法的名称上面点击右键,选择“创建 ...
- c# Cache 使用实例
/// <summary> /// 创建缓存项的文件 /// </summary> /// <param name="key">缓存Key< ...
- Redis Eval Script
简介 从Redis 2.6 版本开始,内嵌支持 Lua 环境.通过使用EVAL或EVALSHA命令可以使用 Lua 解释器来执行脚本. EVAL和EVALSHA的使用是差不多的(下面有讲区别). EV ...
- vb.net 日期時間
Dim dMyDate As DateTime = DateTime.Now‘當前時間日期 DateDiff("h", C13, C3)’ 二時間差 ‘日期格式 C2 = Form ...
- maven配置之:<distributionManagement>snapshot快照库和release发布库
在使用maven过程中,我们在开发阶段经常性的会有很多公共库处于不稳定状态,随时需要修改并发布,可能一天就要发布一次,遇到bug时,甚至一天要发布N次.我们知道,maven的依赖管理是基于版本管理的, ...
- TestOps - 最健壮性的测试角色
一十一 发表于 2018-03-02 09:10:08 TestOps 最具影响力的测试运维一体化综合平台. DevOps实现了从代码到服务的快速落地,而TestOps集成了DevOps效率,更是 ...
- spring配置log4j
1.引入log4j-xxx.jar包,buildpath. 2.在项目的根目录下新建resources名的文件夹,注意是source folder,并新建log4j.properties文件 3.在l ...
- Java网络编程--套接字Socket
一.套接字Socket IP地址标志Internet上的计算机,端口号标志正在计算机上运行的进程(程序). 端口号被规定为一个16位的0--65535之间的整数,其中,0--1023被预先定义的服务通 ...
- 《Inside C#》笔记(完) 程序集
程序集内部包含了各种相关的模块.资源文件.配置文件等,将这些在功能上相关的文件整合到单个文件中,以便于部署和维护.使用C#编译器编译程序时,生成的便是程序集. 一.清单数据 a)如果编译的是独立应用程 ...
- Android spinner默认样式不支持换行和修改字体样式的解决方法
在spinner中显示的数据过多,需要换行,而Android自身提供的android.R.layout.simple_spinner_dropdown_item样式不支持换行,因此参考android提 ...