我使用DATA URI(客户端,使用画布)将映像发布到服务器。我现在有两种选择:我可以将“image”作为字符串保存在varchar(max)列中,或者我可以将其转换为byte []并将其另存为varbinary(max)。数据URI与数据库中的二进制数
就实施而言,努力是相同的。我试图确定什么会更高效,至于1:DB中的空间和2:显示图像。有没有人看到有关这方面的分析或有一个很好的方法来衡量这一点?
一个供参考 - 一个3KB图像是在DB 100K左右的字符。
使用:ASP.NET 4.5,MVC,SQL Server 2008中
明晰
我可以在图像中VARBINARY使用字节[]存储在数据库中(MAX)柱等是通常情况下,或者我可以在HTML5画布中存储DATA URI,其格式如下:data:image/png; base64,iVBORw0K ... varchar(max)列中。
存储字节[]是典型的,不需要进一步解释。存储数据URI只是一个字符串和显示图像会是一个问题的:
<img src="data:image/png;base64,iVBORw0K" /> or
<img src="@Model.Uri" />
我的问题是哪一个更高性能和节省空间,如果有任何文档,白板纸或分析解决这个特定的比较。
这是有帮助的。有链接?我找了40分钟,找不到任何这样的比较。 – 2013-02-21 03:10:34
你会使用varbinary(max)not varchar(max) – 2013-02-21 03:16:00
虽然我很欣赏你的努力,但问题不在于在数据库中存储图像 - 这会花费我7秒;) - 这是关于存储[DATA URI ](http://en.wikipedia.org/wiki/Data_URI_scheme)而不是通常存储的byte []/blob。 – 2013-02-21 05:13:28