2011-03-16 103 views
0

寻找这方面的一些意见,并试图开始推进我的下一个项目的坚实设计。想象一下500万张个人照片和相关的lo-res预览图像;每套图片属于一个画廊,属于一个人。有X个人。可以这么说,Flickr的专门版本。摄影数据库的存储方法

这些被安置在一个远程主机与Web界面查看这些图片。还有一个桌面应用程序可以将它自动上传到远程主机并输入画廊的详细信息。桌面应用程序具有关于每个画廊和个人的预览图像和信息。可以说,与Flickr同步的桌面应用程序。

我需要决定两件事:远程主机的后端存储和桌面应用程序的本地存储。这是针对Windows环境的,所以我一直认为SQL Server Express将会是一个不错的选择,但是这个项目已经有了很大的发展,并且可能只适用于桌面端。

远程(网络)服务器可以是Windows或Linux,PHP或.Net - 只要技术适用,我不在乎。问题在于如何最好地将所有数据存储在Web服务器上,以便在发生灾难时可以轻松地对其进行索引,快速访问,最重要的是可以轻松进行备份和恢复。只要数据库解决方案支持某种云计算场景,我并不担心服务器配置或磁盘空间。

我在想没有SQL后端最有意义,将照片,画廊和用户存储为“文章”而不是“行”。 No-SQL似乎更有能力通过云增长。另一方面,Flickr已被广告为使用MySQL ...

也许这是一个更存在的问题,一个真正的编码问题,但我知道没有更好的群问!

回答

0

已经管理了一张超过500万张照片的股票照片网站,我可以说MySQL无疑是一个可行的选择。如果使用复制,备份很容易。只要停止一个奴隶,复制它,然后开始备份。

MySQL全文搜索不是很好,可能会很慢。所以你可能想看看像Solr这样的基于Lucene的引擎。弹性搜索对于可伸缩性来说也是一个很好的选择。

如果你不确定你的数据结构,那么像MongoDB这样的东西可能是一个很好的解决方案。但是Mongo对聚合有限制(约10,000条记录),所以请记住这一点。但它是最容易设置的之一。

任何东西都可以在云中工作,所以我认为这个要求是一个有争议的问题。你可以在EC2上设置你想要的任何东西。

+0

将照片存储为数据库中的二进制数据,还是将文件系统中的文件与db中引用的路径一起存储? – 2011-03-17 01:50:07

+0

当然在文件系统上。它允许您将它们存储在任何位置,并且不需要每个图像负载都有一个数据库连接。这也使得使用CDN更容易。 – 2011-03-17 10:27:52

相关问题