小编Ben*_*son的帖子

MySQL 在插入大文件时出现“内存不足”错误。这个文件大小限制是从哪里产生的?

我正在使用 MySQL 数据库来存储文件。

我使用的表结构如下:

+--------------+----------+------+-----+---------+-------+
| Field        | Type     | Null | Key | Default | Extra |
+--------------+----------+------+-----+---------+-------+
| AttachmentID | int(11)  | NO   | PRI | NULL    |       |
| Data         | longblob | NO   |     | NULL    |       |
+--------------+----------+------+-----+---------+-------+
Run Code Online (Sandbox Code Playgroud)

INSERT我使用的命令尽可能简单:

INSERT INTO table (AttachmentID, Data) VALUES (attachmentID, attachmentData);
Run Code Online (Sandbox Code Playgroud)

很明显, whereattachmentID是一个int,并且attachmentData是一个大字节数组。

阅读了关于如何在数据库中存储文件的几个指南后,我max_allowed_packet将配置文件中的设置增加到“512M”,对于我实际插入的文件来说已经足够了。

这适用于 30MB - 40MB 的几个文件。但是,现在我要插入 90MB+ 范围内的较大文件,我收到“内存不足”异常,需要的字节数等于我尝试插入的文件的大小。

该服务器是一个虚拟服务器,分配了 4GB 的空间,并且没有其他可能干扰的运行。

为什么我会收到较大文件的内存不足错误,而不是较小的文件? 这个文件大小限制来自哪里?

我在下面包含了我的配置文件:

[client]
port        = 3306
socket …
Run Code Online (Sandbox Code Playgroud)

mysql memory

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

memory ×1

mysql ×1