gpt4 book ai didi

MySQL,保存大 blob

转载 作者:行者123 更新时间:2023-11-29 10:38:41 25 4
gpt4 key购买 nike

我正在测试一个用 QT 编写的应用程序,该应用程序处理保存在数据库中的 PDF,我在尝试保存任何大于 1Mb 的文件时遇到了麻烦,应用程序会崩溃,在 Goggle 上阅读最终会更改 MAX_ALLOWED_PACKET 并让我保存 Blob 。

我绘制了几个不同大小的 PDF 上传图,并得到了一些大约 200Kb/秒的保存文件。然后令我惊讶的是,检查数据库后我发现任何超过 5Mb 左右的内容都无法存储。没有错误,应用程序和 MySQL 之间的握手似乎正常,因为我没有收到任何错误。

我有一些使用 MySQL 和 Oracle 的经验,但我从未处理过 Blob。我在某处读到一篇文章,我应该尝试更改 innodb_log_file_size 的值(我尝试了 2000000000),但 MySQL 告诉我它是一个只读变量。有人可以帮我解决这个问题吗?我在 Ubuntu 上运行 MySQL。

最佳答案

出现错误并不奇怪,因为默认的 innodb 日志文件大小为 48MB(50331648 字节)。

您的 innodb 日志文件大小必须至少是您尝试保存的最大 blob 大小的 10 倍。换句话说,只有当 blob 不大于日志文件大小的 1/10 时,才可以保存它。这在 MySQL 5.6 中开始强制执行;在此之前,手册中建议这样做,但没有强制执行。

您可以更改日志文件大小,但需要重新启动 MySQL 服务器。这些步骤记录在此处:https://dev.mysql.com/doc/refman/5.7/en/innodb-data-log-reconfiguration.html

附注至于关于将图像存储在数据库中与作为文件存储在磁盘上的评论,这是一个长期的争论。有些人会明确表示将图像存储在数据库中是不好的,但争论双方都有利有弊。请参阅我对 Should I use MySQL blob field type? 的回答

关于MySQL,保存大 blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45944508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com