处理MySQL中的巨大Blob?

oli*_*rum 6 mysql blob

如何将巨大的BLOB插入MySQL数据库(InnoDB)?

根据MySQL手册,LONGBLOB类型的字段支持最大4 GB的数据大小.但是如此巨大的数据如何进入数据库呢?

我试着用

INSERT INTO table (bindata) VALUES ( LOAD_FILE('c:/tmp/hugefile') );
Run Code Online (Sandbox Code Playgroud)

如果hugefile的大小大于500 MB,则会失败.我已经设定max_allowed_packet了合适的尺寸; 价值innodb_buffer_pool_size似乎没有影响力.

我的服务器机器运行Windows Server 2003并具有2 GB RAM.我正在使用MySQL 5.0.74-enterprise-nt.

Qua*_*noi 2

BLOB 缓存在内存中,这就是为什么当您将BLOB 插入数据库时​​,您将拥有3 个BLOB 副本。

您的 500 MB BLOB 占用了 RAM 中的 1,500 MB,这似乎达到了您的内存限制。