首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当数据变得很大时,MySQL插入查询失败

问当数据变得很大时,MySQL插入查询失败
EN

Stack Overflow用户
提问于 2013-07-08 17:24:14
回答 3查看 5.6K关注 0票数 2

我已经回答了这个问题:Data Limit on MySQL DB Insert我无法用有限的信息解决这个问题。我正在使用WAMP。我有许多富文本编辑器和4个图像,这是由一个POST请求发送到另一个页面。超过一定的阈值限制后,查询将失败。有没有附近的路?

编辑:在显示查询字符串时,我似乎能够检索通过POST发送的每一位数据。我非常确定它与数据库相关。图像被存储为BLOB。

编辑#2:错误显示为"MySQL服务器已消失“。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-08 17:46:00

您可能违反了max_allowed_packet设置。有关更多数据,请参阅here。

引用,

如果您使用的是mysql客户端程序,那么它的默认max_allowed_packet变量是16MB。

如果你上传的是未压缩的图片,这个值很容易达到。

此外,如果您可以命名您使用的特定数据库接口类,那就太好了(PDO?mysql_?mysqli_?),因为不同的类处理错误的方式不同。它也可以完全不处理过大的数据包情况。

附言:你真的应该检查你的日志,看看你遇到的具体错误。首先要查找的是/var/log/mysql/error.log (可能会根据您的环境而有所不同)

更新: mysql_error()返回"MySQL server has gone away"

中的错误:“如果向服务器发送的查询不正确或太大,也可能会出现这些错误。如果mysqld接收到过大或无序的数据包,它会假定客户端出了问题,并关闭连接。如果您需要大型查询(例如,如果您正在处理大型BLOB列),则可以通过设置服务器的max_allowed_packet变量来增加查询限制,该变量的默认值为1MB。您可能还需要增加客户端上的最大数据包大小...“

(引述由@Colin Morelli提供)

票数 5
EN

Stack Overflow用户

发布于 2013-07-08 17:29:04

有时,如果上传的文件太大,php会达到内存限制。根据您的配置,这可能会有所帮助:

代码语言:javascript
复制
set_time_limit(0);
ini_set('memory_limit', '-1');
票数 0
EN

Stack Overflow用户

发布于 2013-07-08 17:51:06

编辑:

如果这不是我们都急于回答的内存分配问题,那么它可能是内存引擎的花边新闻,所以你可以检查一下。

评论:

根据我的经验,这很可能是内存问题,因为只有在尝试更大的导入时才会发生

(当我试图从单个查询返回20MB的结果集时,我的应用程序会发生这种情况)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17523120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档