- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要能够将多个文件上传到数据库,并将它们与给定表中的给定记录相关联。我最初考虑压缩所有必要的文件并将生成的字节数组作为参数与剩余的记录数据一起发送到存储过程,这样我就可以确保这作为一个事务并检索所有关联的文件有给定的记录将是小菜一碟。然而,由于性能原因,这个计划没有被接受,现在我有两个选择:
创建一个包含byte[]
数组的数据结构,(二进制)序列化它并与数据一起发送;或者
先发送剩余的数据,抓取记录的ID,然后分别发送每个文件(将其与给定的ID相关联);
现在,1) 看起来太像我的第一个计划并且很可能被拒绝,即使这次不涉及压缩。选项 2) 似乎是可行的方法,但是,我必须保证我在单个事务中同时上传记录的数据和文件,这将迫使我在我的数据层中进行更改(尽管很小)。 .
如果您遇到这个问题,您会选择哪个选项?如果我上面提到的都不是,那么是哪一个?
编辑: 数据库位于远程服务器中。这些文件可以任意大,但我不希望它们大于 1-2MB。将文件存储在应用程序和数据库服务器都可以访问的位置不是一种选择,因此我不能只将文件的路径发送到数据库(它们实际上必须作为 BLOB 存储在数据库中)。
最佳答案
您的第一个计划因性能问题而被拒绝 - 大概这意味着网络传输速度?
您的备选方案是单独发送文件,然后将它们绑定(bind)到您的服务器上。这是一个很好的计划,但您希望确保所有文件都在单个事务中上传和提交。此后,您的服务器在收到所有文件并成功提交之前无法响应成功信号。
所以你的第二种情况需要在交易中上传相同数量的数据。那么它如何才能表现得更好呢?
事实上,您可以想到的任何可能的设计 - 假设需要在单个事务中接收文件 - 都会有相同的“性能问题”。
您对“交易”的理解可能与我不同,但通常在交易完成之前,您不能去使用最初提交的“剩余数据”。我认为您的问题是围绕系统所需的“单一事务”性质,而不是任何网络瓶颈。
关于c# - 上传文件到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8086460/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!