【问题标题】:Writing larg BLOB throws InvalidOperationException写入大 BLOB 会引发 InvalidOperationException
【发布时间】:2011-01-03 15:32:37
【问题描述】:

我在使用 .net 实体框架将大型 blob 写入 MySQL 数据库时遇到问题。

我正在使用:

  1. Visual Studio 2010
  2. .Net 3.5
  3. Devart ADO.NET 实体框架(最新)
  4. MySSQl(最新)

感谢您的帮助。

【问题讨论】:

标签: .net mysql entity-framework ado.net devart


【解决方案1】:

Mysql 默认数据包大小为 1MB,这意味着您的查询结果的数据应该适合它。如果您尝试存储多行信息并且大于 1 MB,则行在传输中被拆分。但如果是大 blob,您可以增加网络数据包大小或将信息存储在更小的多行中,如本博客所示 http://akashkava.com/blog/127/huge-file-storage-in-database-instead-of-file-system/

【讨论】:

  • 增加 MySQL 参数 max_allow_packet 的值确实起到了作用。
  • 是的,但这会在分配更大的缓冲区和更多的内存消耗时导致更多问题,因此对高性能应用程序会产生影响。