我即将为我正在处理的项目设计一个数据库。我需要存储多种类型的数据,如视频,照片,文字,音频。我必须通过PHP存储它们,我必须经常查询它们。我正在开发的这个项目是一个社交网络,我需要通过通知和消息来连接用户。 下面是一个问题:使用NoSQL DB来存储数据和通知系统(比如MongoDB和Redis)还是MySQL可以帮助我更好地处理这类系统? 对不起,我的英语,但技术的东西很难解释像我这样的英语初学者。感谢你们。存储多种类型数据的最佳方法
0
A
回答
1
与SQL技术,即MySQL的问题是,通常你必须把这个二进制文本放在一个BLOB中,在这一点上你已经做错了。
需要考虑的另一件事是文件系统访问总是比数据库访问要快,无论它是MongoDB还是SQL,但是数据库存储确实有一些优势。最终在你的网站上(如果它稍微受欢迎),你会发现你需要一个CDN。这些分发网络可能会很昂贵,但是像MongoDB那样,您可以在其他区域中创建数据的副本,并根据需要复制二进制数据(甚至可能像CDN一样TTL)。
所以这是一个需要考虑的领域,即文件系统不是大部分时间,对于像社交网络这样的高负载网站来说是正确的答案。然而,即使Facebook的自己也不能幸免于具有直接从文件系统服务,因为他们的状态(https://blog.facebook.com/blog.php?post=2406207130,考虑到这个帖子是5岁,但我怀疑太大的改变在这方面):
我们也有开发了我们自己的专用Web服务器,这些服务器被调整为尽可能少地读取磁盘文件。即使有数千个硬盘驱动器主轴,I/O(输入/输出)仍然是一个问题,因为我们的流量非常高。我们的鱿鱼缓存有助于减轻负载,但鱿鱼并不是快速或足够高效的,因此我们也正在编写我们自己的网络加速器。
然而,他们确实有一个非常大的基础设施,很可能你应该更喜欢考虑是否使用数据库存储或CDN。
我个人认为您应该对内容分发网络以及其他网站如何为其图片提供服务。您可以在Google上查找信息。您可以专门搜索Facebook,直到最近,他们正在使用Akamai作为他们的CDN。
1
你可以去任何一个方向。但是将二进制数据存储在数据库中通常不是最有效的路径。您最好将其存储在文件系统中,并将路径放入数据库中。
相关问题
- 1. xml数据存储的最佳方法
- 2. 存储数据表的最佳方法
- 3. 存储大型数值多维数组的最佳方法
- 4. 传递多种数据类型的最佳方式
- 5. 存储三个数据的最佳方法 - 多维数组?
- 6. 在SQL Server中存储大型数据集的最佳方法?
- 7. 将多种数据类型存储到数据库中的最佳方式是什么
- 8. 存储加密字段数据的最佳数据类型
- 9. 处理多种权限类型的最佳方法是什么?
- 10. iphone-存储数据的最佳方式
- 11. 存储数据的最佳方式
- 12. iPad - 存储数据的最佳方式
- 13. 存储数据的最佳方式
- 14. 最好的方法来存储三种类型的位?
- 15. 将XML数据存储到数据库中的最佳方法
- 16. 需要一种方法来存储数据类型
- 17. 多维数组存储多种数据类型
- 18. 将大量(10000多种)DIFFERENT对象类型存储到数据库中的最佳做法是什么?
- 19. 在屏幕上存储各种UI元素的数据的最佳方法
- 20. 在C++数据结构中存储多种数据类型
- 21. 在实体框架中存储多类型值的最佳方法
- 22. 最佳MIME类型方法
- 23. 用于MSISDN存储的最佳数据类型和长度
- 24. 在oracle中存储邮政编码的最佳数据类型
- 25. 最佳的SQL电子邮件附件存储数据类型?
- 26. 什么是存储表格数据结构的最佳类型?
- 27. 用于存储键值映射的最佳PostgreSQL数据类型?
- 28. 用于存储货币值的VB.NET最佳数据类型
- 29. 寻找最佳的数据存储类型PYTHON
- 30. 在MySQL数据库中存储数组的最佳方法?
真的非常感谢你提供了一个非常有说服力的答案! – steo