jcho360 Asked: 2012-05-02 10:37:26 +0800 CST2012-05-02 10:37:26 +0800 CST 2012-05-02 10:37:26 +0800 CST 什么比长斑点大? 772 longblob 是 Mysql 最大的数据类型。如果我想保存大于 4gb (longblob) 的东西,我该怎么办? 我说的是 Mysql v-5.+ mysql datatypes 2 个回答 Voted Best Answer RolandoMySQLDBA 2012-05-02T12:26:16+08:002012-05-02T12:26:16+08:00 鉴于最大的 max_allowed_packet 只有 1GB,使用 LONGBLOB 可能会非常冒险。 早在 2006 年 8 月,有人问过类似的问题。彼得扎伊采夫在其中说: http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html 正如您在理论上看到的那样,它大约是 4GB。 然而,它也受到默认为 16M 的 max_packet_size 的限制。 我会非常小心使用大于 100MB 的 blob。MySQL 将需要在服务器上分配大约 3 倍于该大小的内存用于 blob 处理。 我不是 PostgreSQL DBA,但我不得不冒险提出以下建议: 如果您必须存储那么大的对象,您应该使用 PostgreSQL,因为它有一个称为外部属性存储技术 (TOAST) 的存储基础架构。这允许行对于 SQL 处理来说不会太大。 如果必须使用 MySQL,存储 URL 文件链接比存储 BLOB 本身要好得多。 serup 2013-03-30T00:03:24+08:002013-03-30T00:03:24+08:00 如果您真的想存储在 mysql 中,那么也许您可以使用块存储它,这意味着您制作一个算法来获取数据并将其以块的形式存储在数据库中 - 这当然会使检索数据时的编程更加困难,因为你必须做相反的事情,但这种技术可以解决你的问题
鉴于最大的 max_allowed_packet 只有 1GB,使用 LONGBLOB 可能会非常冒险。
早在 2006 年 8 月,有人问过类似的问题。彼得扎伊采夫在其中说:
我不是 PostgreSQL DBA,但我不得不冒险提出以下建议:
如果您真的想存储在 mysql 中,那么也许您可以使用块存储它,这意味着您制作一个算法来获取数据并将其以块的形式存储在数据库中 - 这当然会使检索数据时的编程更加困难,因为你必须做相反的事情,但这种技术可以解决你的问题