|
|
1
2
以前的评论都很好…在没有非常具体的要求的情况下,我们必须作出广泛的概括来说明您的选择。下面是几个例子。
所提出的缓存概念是一个很好的概念,它可以帮助您在实际访问数据库的频率方面创建一些中间地带,尽管它不会帮助您解决与内存消耗、GC等相关的问题。您可以使用内置的缓存机制,但如果您负担得起(例如ncache、scaleout等),支持后备存储的缓存/网格会更好。它们提供了很好的可伸缩性/缩减性,还可以用来卸载会话状态、视图状态等的存储。 希望这有帮助。 |
|
2
1
你基本上有两个选择 1)将二进制文件存储在数据库中。varbinary(max)字段将是一个很好的数据类型选择。 2)将存储在磁盘上的映像的路径存储在数据库中。对于数据类型,nvarchar(max)是一个很好的选择。 当然,这两种解决方案都有优点和缺点。如果不了解您的需求,就很难建议哪种方法是最好的。 |
|
|
3
1
我不喜欢将图像存储在数据库中,而是只存储指向正确图像的链接(路径/文件名/id等)。 然后,如果您实现一个httphandler来提供图像,那么您可以将它们存储在您喜欢的任何位置。下面是一个非常基本的实现:
有关设置处理程序的重要资源,请签出 this blog post 以及其他相关岗位。 |
|
|
4
0
我不会对你的解决方案过于复杂。在数据库中存储图像的缺点是数据库膨胀和备份的存储需求,特别是当图像只适合12小时时。如果有疑问,请保持简单,所以当需求发生变化时,无论如何您都没有投入太多时间。 这就是我在网站上做的。
|
|
|
5
0
您是否考虑过缓存图像以减少往返于SQL Server的时间?缓存可能适用于浏览器(通过 HTTP Headers )和/或为图像提供服务的HTTP处理程序(通过 System.Web.Caching ) 在SQL Server中存储图像很方便,因为您不必担心维护指向文件系统的指针。但是,数据库的大小显然要大得多,这会使备份和维护更加复杂。您可以考虑在数据库中为图像表使用不同的文件组,或者一起使用单独的数据库,这样就可以维护与图像数据分离的行数据。 使用SQL Server还意味着您可以轻松地选择并发控制、分区和复制(如果它们适合您的应用程序)。 |
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
Marc Guillot · 记录值时忽略冲突 1 年前 |
|
|
Fachry Dzaky · 正确使用ROW_NUMBER 1 年前 |
|
|
TriumphTruth · 从满足特定条件的数据集中选择1行 1 年前 |