2014-10-03 87 views
-1

我想更好地了解如何将图像存储在数据库中。主要围绕表现。在数据库中存储图像的效率

我想拥有一个图像数据库。我知道查询是否有许多字段需要搜索是低效的,但如果我将图像保存在单独的表格(仅限带有图像ID和图像的表格)中,性能会受到怎样的影响。所以当查询表格时我可以使用主表格,但是我只会在需要时从图片表格中拉出图像。

当然这是不好的做法,理想的做法是将图像保存在目录中并将该图像的文件路径存储在数据库中。

记住引用图像位置的文件路径(字符串变量)可能会比图像ID长。

它是有道理的,它会更快地搜索数据库的数据库相关的图像,而不是在数据库和主机目录之间跳转。

你们觉得怎么样?

+2

http://stackoverflow.com/questions/3748/storing-images-in-db-yea-or-nay – 2014-10-03 08:33:14

回答

1

根据您的应用程序,目标将决定哪种存储/检索方法最好。没有一个一揽子解决方案适合所有需求

存储用户上传图像的两种主要方法是将二进制内容作为BLOB放入数据库,或将图像存储到文件系统中。

事实是二进制存储的方法非常成功,并且与文件系统存储相比具有许多优点。一些优点是:

参照完整性(ACID一致性)

易于备份

的inode

容易的范畴

否保存名称冲突

元数据存储(关于数据的数据)

操作的中央点

复制在多个服务器

放置在数据库中有图像不需要Web服务器上任何类型的文件系统权限的优势,并消除任何类型的同步问题,如果你服务于s迭代多个网络服务器。但是,随着时间的推移,它会使您的数据库变得庞大,如果您没有正确设计表格,它绝对会损害您的性能和可伸缩性。

还有几个原因不将图像或其他二进制数据存储在数据库中。

更好的缓存机制

外部代理

MySQL能够存储“正常”数据好

数据通过量与文件系统

更高小号撒尿检索

均指:Storing images with MySQLStackOverflow Question