mysql存储blob限制

一、Mysql存储类型分类:  

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

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

  3、二者使用时不能指定默认值,根据实际情况需要修改【max_allowed_packet】系统变量

 

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

  1、tinyblob、tinytext最大存储255字节

  2、blob、text最大存储65K

  3、mediumblob、mediumtext最大存储16M

  4、longblob、longtext最大存储4G

 

三、测试存储限制:  

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字节。

 

四、总结:

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

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

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

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

转载于:https://www.cnblogs.com/hackxiyu/p/9442620.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值