BLOB最大长度为65535(64 KB)个字符的字符串。
MySQL手册上说:BLOB或Text对象的最大大小取决于它的范例,但您现实能够在客户端和服务器之间传输的最大值取决于可用的内存量和通讯缓冲区的大小。
假如须要更长的数据量,请斟酌运用:
MEDIUMBLOB16777215字节(16 MB)
LONGBLOB4294967295字节(4GB)
常见问题:
表范例: 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字节), 插进去胜利
注意事项:
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 字段过量的细致内容,更多请关注ki4网别的相干文章!