2025年MySQL:BLOB与TEXT及其最大存储限制

MySQL:BLOB与TEXT及其最大存储限制Blob 二进制大对象 字节流 可以用来存储图片 声音和视频等二进制文件 没有字符集的说法 TEXT 文本大对象 字符流 可以用来存储大量的字符串 可以理解为超大的 char 或者 varchar 类型 由于是存储字符 所以有字符集的说法 并且 blob 和 text 类型是无法设置默认值的

大家好,我是讯享网,很高兴认识大家。
  • Blob,二进制大对象(字节流)。可以用来存储图片,声音和视频等二进制文件。没有字符集的说法。
  • TEXT,文本大对象(字符流)。可以用来存储大量的字符串,可以理解为超大的char或者varchar类型。由于是存储字符,所以有字符集的说法。

并且blob和text类型是无法设置默认值的。并且必要时增大max_allowed_packet的值以适应改数据类型

mysql中,blob和text又细分为:(存储限制来自网上摘录)

  • tinyblob,tinytext,最大存储限制255字节
  • blob,text,最大存储限制65k(是真的吗?)
  • mediumblob,mediumtext,最大存储限制16M
  • longblob,longtext,最大存储限制4G

下面根据实验并以blob为例,来演示存储限制:

mysql> use test1 Database changed mysql> show tables; +-----------------+ | Tables_in_test1 | +-----------------+ | t1 | +-----------------+ 1 row in set (0.00 sec) mysql> drop table t1; Query OK, 0 rows affected (0.28 sec) 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; +-------------+------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | tiny_blob | tinyblob | YES | | NULL | | | b_blob | blob | YES | | NULL | | | medium_blob | mediumblob | YES | | NULL | | | long_blob | longblob | YES | | NULL | | +-------------+------------+------+-----+---------+----------------+ 5 rows in set (0.00 sec) mysql> insert into t1(id) select 1; Query OK, 1 row affected (0.05 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql> select * from t1; +----+-----------+--------+-------------+-----------+ | id | tiny_blob | b_blob | medium_blob | long_blob | +----+-----------+--------+-------------+-----------+ | 1 | NULL | NULL | NULL | NULL | +----+-----------+--------+-------------+-----------+ 1 row in set (0.00 sec) 

讯享网

先建一个表t1,各种blob类型均有。

然后查看参数max_allowed_packet的大小:


讯享网

讯享网mysql> select @@global.max_allowed_packet; +-----------------------------+ | @@global.max_allowed_packet | +-----------------------------+ |  | +-----------------------------+ 1 row in set (0.00 sec) mysql> select  / 1024; +-----------------+ |  / 1024 | +-----------------+ | 65536.0000 | +-----------------+ 1 row in set (0.02 sec) mysql> select  / 1024 / 1024; +------------------------+ |  / 1024 / 1024 | +------------------------+ | 64.00000000 | +------------------------+ 1 row in set (0.00 sec) 

64M

tinyblob的存储限制

1、生成一个指定大小的文件

E:\temp>DIR fsutil file createnew E:\temp\test.255.file 255 fsutil file createnew E:\temp\test.256.file 256 E:\temp>DIR 2020/03/17 周二 16:07 <DIR> . 2020/03/17 周二 16:07 <DIR> .. 2020/03/17 周二 16:07 255 test.255.file 2020/03/17 周二 16:07 256 test.256.file 2 个文件 511 字节 

2、更新tinybobb字段,看是否插入成功

讯享网mysql > UPDATE t1 SET t1.tiny_blob=LOAD_FILE('E:\temp\test.255.file') WHERE t1.id=1; Query OK, 0 rows affected (0.03 sec) Rows matched: 1 Changed: 0 Warnings: 0 

因为无法注入

未完https://blog.csdn.net/q3dxdx/article/details/

小讯
上一篇 2025-02-16 22:48
下一篇 2025-02-28 09:29

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/128647.html