作者:鹏城飞将 | 来源:互联网 | 2020-08-29 06:02
在MySQL中对于大文本字段内容,可以使用BLOB进行存储,使用BLOB存储时注意设置表格属性row_formatdynamic,同时需要注意的是TEXT与BLOB都是为存储大字符串而设计的数据类型,但是会影响MySQL速度。
根据MySQL官方文档数据类型网站:http://www.htmlite.com/mysql003.php
BLOB最大长度为65535(64 KB)个字符的字符串。
MySQL手册上说:BLOB或Text对象的最大大小取决于它的类型,但您实际可以在客户端和服务器之间传输的最大值取决于可用的内存量和通信缓冲区的大小。
如果需要更长的数据量,请考虑使用:
MEDIUMBLOB16777215字节(16 MB)
LONGBLOB4294967295字节(4GB)
插入超过10个blob, blob的数据量很大(>768字节), 插入成功
注意事项:
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 字段过多的详细内容,更多请关注 第一PHP社区 其它相关文章!