高性能mysql之慎用BLOB与TEXT

Posted 帅S俊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高性能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 垂直拆分

mysql 垂直拆分

MySQL优化之二:My SQL Server性能优化

mysql性能优化之服务器参数配置-内存配置

着重基础之—MySql Blob类型和Text类型

mysql之主从复制