【问题标题】:Storage method for photography database摄影数据库的存储方法
【发布时间】:2011-03-16 23:33:01
【问题描述】:

在这方面寻找一些意见,并尝试以可靠的设计开始推进我的下一个项目。想象一下 5,000,000 张带有低分辨率预览图像的单独图片;每组图片都属于一个画廊,属于一个人。有 X 人。可以说是 Flickr 的专门版本。

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

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

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

我认为 No-SQL 后端最有意义,将照片、画廊和用户存储为“文章”而不是“行”。 No-SQL 似乎更有能力与云一起增长。另一方面,Flickr 被宣传为使用 MySQL ...

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

【问题讨论】:

    标签: mysql database nosql cloud storage


    【解决方案1】:

    我管理了一个拥有超过 500 万张照片的库存照片网站,我可以说 MySQL 无疑是一个可行的选择。如果使用复制,备份很容易。只需停止一个从站,复制它,然后启动它备份。

    MySQL 全文搜索不是很好,而且速度很慢。因此,您可能想研究像 Solr 这样的基于 Lucene 的引擎。弹性搜索也是可扩展性的不错选择。

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

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

    【讨论】:

    • 您是将照片作为二进制数据存储在数据库中,还是以数据库中引用的路径的文件系统上的文件的形式存储?
    • 绝对在文件系统上。它允许您将它们存储在任何地方,并且每次图像加载都不需要数据库连接。它还使使用 CDN 变得更加容易。
    猜你喜欢
    • 1970-01-01
    • 2012-12-21
    • 2019-05-10
    • 2020-02-23
    • 1970-01-01
    • 2013-07-05
    • 2011-03-28
    • 2020-06-17
    • 2016-07-02
    相关资源
    最近更新 更多