首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存储多种类型数据的最佳方式

问存储多种类型数据的最佳方式
EN

Stack Overflow用户
提问于 2012-12-08 19:34:00
回答 2查看 239关注 0票数 0

我将要为我正在工作的一个项目设计一个数据库。我需要存储多种类型的数据,如视频,照片,文本,音频。我必须存储它们,并且通过php我必须频繁地查询它们。我正在做的这个项目是一个社交网络,我需要通过通知和消息来连接用户。这里有一个问题:使用NoSQL DB来存储数据更有帮助,对于通知系统(如MongoDB和Redis )或MySQL也可以帮助我使用这种系统吗?很抱歉我的英语,但是对于像我这样的英语初学者来说,技术知识是很难解释的。谢谢你们。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-09 04:54:24

SQL techs,即MySQL的问题是,通常你必须将二进制文本放在BLOB中,而此时你已经做错了。

要考虑的另一件事是,无论是MongoDB还是SQL,文件系统访问总是比数据库访问更快,但是,数据库存储确实有一些优势。最终,在你的网站上(如果它变得有点流行),你会发现你需要一个CDN。这种类型的分发网络可能很昂贵,但是使用像MongoDB这样的东西,您可以只旋转其他区域中的数据副本,并在需要时复制二进制数据(甚至可能TTL只是想要一个CDN)。

所以这是一个需要考虑的领域,文件系统在大多数情况下并不是像社交网络这样的高负载站点的正确答案。然而,就像他们所说的那样,即使是facebook本身也不能幸免于必须直接从文件系统提供服务( https://blog.facebook.com/blog.php?post=2406207130,考虑到这篇文章已经发布5年了,但我怀疑在这方面有多少变化):

我们还开发了我们自己的专用web服务器,这些服务器经过调整,可以以尽可能少的磁盘读取来提供文件。即使有数千个硬盘磁盘轴,I/O (输入/输出)仍然是一个令人担忧的问题,因为我们的流量太高了。我们的squid缓存有助于减轻负载,但squid的速度和效率远远不能满足我们的目的,所以我们也在编写自己的网络加速器。

但是,它们确实有一个非常大的基础设施,最有可能的是,您应该更多地考虑使用数据库存储还是CDN。

我个人认为,您应该对内容分发网络和其他网站如何提供其图像做一些研究。你可以在谷歌上找到所有的信息。你可以专门搜索Facebook,他们直到最近还在使用Akamai作为他们的CDN。

票数 1
EN

Stack Overflow用户

发布于 2012-12-08 21:14:34

你可以走任何一条路。但是在db中存储二进制数据通常不是最有效的路径。您最好将其存储在文件系统中,并将路径放在DB中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13777062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档