mysql存储blob限制

1、Mysql存储类型分类:  

  一、blob:二进制大对象(字节流),能够用来存储图片、视频等,没有字符集的说法mysql

  二、text:文本大对象(字符流),存储大型字串,有字符集的说法sql

  三、两者使用时不能指定默认值,根据实际状况须要修改【max_allowed_packet】系统变量测试

 

2、blob、text存储大小限制:

  一、tinyblob、tinytext最大存储255字节spa

  二、blob、text最大存储65Kcode

  三、mediumblob、mediumtext最大存储16M视频

  四、longblob、longtext最大存储4G对象

 

3、测试存储限制:  

C:\Users\Administrator>mysql mysql> use test1; mysql> show tables; mysql> drop table t1; mysql> CREATE TABLE t1 ( ->   id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, -> tiny_blob TINYBLOB, -> b_blob BLOB, -> medium_blob MEDIUMBLOB, -> long_blob LONGBLOB -> ); mysql> desc t1; mysql> insert into t1(id) select 1; mysql> select * from t1; mysql> select @@global.max_allowed_packet; #测试tinyblob的存储限制,看是否只能存储最大255字节的文件: mysql> UPDATE t1 -> SET t1.tiny_blob=LOAD_FILE('D:/Program Files/mysql-5.7.11-winx64/temp/test.255.file') -> WHERE t1.id=1; mysql> UPDATE t1 -> SET t1.tiny_blob=LOAD_FILE('D:/Program Files/mysql-5.7.11-winx64/temp/test.256.file') -> WHERE t1.id=1; ERROR 1406 (22001): Data too long for column 'tiny_blob' at row 1 #blob的存储限制是不是65k: mysql> UPDATE t1 -> SET t1.b_blob=LOAD_FILE('D:/Program Files/mysql-5.7.11-winx64/temp/test.65560.file') -> WHERE t1.id=1; ERROR 1406 (22001): Data too long for column 'b_blob' at row 1 #可见,65559字节也是没法存储的。那么blob到底能存储多少字节呢?答案是65536-1=65535字节,也就是64K少1字节。

 

4、总结:

  一、tinyblob、tinytext最大存储为255字节(2的8次方-1)blog

  二、blob、text最大存储限制为64K-1(2的16次方-1)图片

  三、mediumblob、mediumtext最大存储限制为16M-1(2的24次方-1)table

  四、longblob、longtext最大存储限制4G-1(2的32次方-1)

相关文章
相关标签/搜索