什么是更好的和更快的保存和获取文件Azure BLOB存储或SQL SERVER的方法?

h.o*_*a.n 2 sql-server wcf storage azure

[背景]现在,我正在创建WCF,以保存和获取我们大学的文章。

我需要保存文件和这些文件的元数据。我的WCF每天需要1000人使用。该存储空间将包含约60000个aticle。

我有三种不同的方式来做。

  1. 我可以在SQL Server中保存元数据(文件名,文件类型)以创建唯一ID),然后将文件保存到Azure BLOB存储中。
  2. 我可以将元数据和数据保存到sql server中。
  3. 我可以将元数据和数据保存到Azure BLOB存储中。

选择哪种方式,为什么?如果您建议您自己的解决方案,那将是无足轻重的。PS他们俩都使用Azure。

Gau*_*tri 5

我建议选择选项1-将元数据保存在数据库中,但将文件保存在Blob存储中。这是我的原因:

  1. Blob存储仅用于此目的。到今天为止,一个帐户可以存储500TB的数据,每个Blob的大小可以为200 GB。因此,空间不是限制。
  2. 与SQL Server相比,将其存储在Blob存储中非常便宜。
  3. 我之所以建议将元数据存储在数据库中,是因为Blob存储是一个简单的对象存储,没有任何查询功能。因此,如果要搜索文件,可以查询数据库以查找文件,然后将文件URL返回给用户。

但是请记住,由于这些(数据库服务器和Blob存储)是两个不同的数据存储,因此您将无法实现事务一致性。创建文件时,建议先将文件上传到Blob存储中,然后在数据库中创建一条记录。同样,在删除文件时,我建议先从数据库中删除记录,然后再删除blob。如果您担心有孤立的Blob(即数据库中没有匹配记录的Blob),建议您运行一个后台任务,以查找孤立的Blob并将其删除。