我正在构建一个15+ TB范围的数据仓库。虽然存储空间很便宜,但由于预算有限,我们必须尽可能多地将数据压缩到该空间,同时保持性能和灵活性,因为数据格式经常变得安静。
我尝试使用Infobright(社区版)作为SQL解决方案,它在存储和性能方面表现非常出色,但数据/表格更改的限制使得它几乎不可行。而且infobright对企业版的定价非常陡峭。
在查看MongoDB之后,除了一件事之外,它似乎很有希望。我正和一个10gen的人聊天,他说他们并没有真正考虑存储空间,因为他们将数据压平以实现性能和灵活性,并且他们认为存储太便宜了现在很烦。
所以任何有经验的mongo用户都可以评论它的存储空间vs mysql(因为它是我们现在比较的标准)。如果它更大或更小,你能给出粗略的比例吗?我知道这种情况取决于你在SQL中放入什么类型的数据以及如何定义字段,索引等...但我只是想弄清楚。
提前感谢您的帮助!
答案 0 :(得分:2)
MongoDB没有针对小磁盘空间进行优化 - 正如您所说,“磁盘很便宜”。
从我所看到和阅读的内容来看,由于以下原因估计所需的磁盘空间非常困难:
恕我直言,一般方法是构建原型,插入数据并查看特定用例需要多少磁盘空间。您可以对查询建模(插入和更新)越实际,结果就越好。
有关详细信息,请参阅http://www.mongodb.org/display/DOCS/Excessive+Disk+Space。
答案 1 :(得分:1)
MongoDB 的优缺点
在大多数情况下,用户似乎喜欢 MongoDB。对 TrustRadius 的评论给予面向文档的数据库 8.3 星(满分 10 星)。
经过身份验证的 MongoDB 用户表示他们喜欢该数据库的一些事情包括:
用户对 MongoDB 也有负面评价。经过身份验证的用户报告的一些缺点包括:
MySQL 的优缺点
MySQL 在 TrustRadius 上的评分略高于 MongoDB(10 颗星中的 8.6 颗)。尽管评分更高,但经过身份验证的用户仍然提到了选择 MySQL 的许多优点和缺点。
用户经常提到的一些积极功能包括 MySQL:
当然,即使是喜欢使用 MySQL 的人也会发现他们不喜欢的功能。他们的一些抱怨包括:
MongoDB 与 MySQL 的性能
在比较 MongoDB 和 MySQL 的性能时,您必须根据具体情况考虑每个数据库将如何影响您的项目。虽然某些性能特性在客观上看起来很有希望,但您的团队成员可能永远不会使用那些最初将您吸引到数据库的特性。
MongoDB 性能
许多人声称 MongoDB 优于 MySQL,因为它允许他们以多种方式创建查询。换句话说,可以在不了解 SQL 的情况下使用 MongoDB。虽然灵活性提高了 MongoDB 对某些组织的性能,但 SQL 查询对于其他组织就足够了。
MongoDB 也因其处理大量非结构化数据的能力而受到称赞。根据您收集的数据类型,此功能可能非常有用。
MongoDB 不会将您绑定到单个供应商,让您可以自由地提高其性能。如果供应商未能为您提供出色的客户服务,请寻找其他供应商。
MySQL 性能
对于需要一个可以在多个表中存储信息的开源关系数据库的团队来说,MySQL 表现得非常好。但是,您获得的性能取决于您配置 MySQL 数据库的程度。配置应根据预期用途而有所不同。例如,电子商务网站可能需要与研究科学家团队不同的 MySQL 配置。
无论您打算如何使用 MySQL,数据库的性能都会从全文索引、高速事务系统和内存缓存中得到提升,这些缓存可防止您丢失重要信息或工作。
如果您没有从 MySQL 数据仓库和数据库中获得预期的性能,您可以通过将它们与出色的 ETL 工具集成来提高性能,使数据存储和操作比以往任何时候都更容易。
MySQL 与 MongoDB 速度
在 MySQL 和 MongoDB 之间的大多数速度比较中,MongoDB 是明显的赢家。 MongoDB 在接受大量非结构化数据方面比 MySQL 快得多。在处理大型项目时,很难说 MongoDB 比 MySQL 快多少。您获得的速度取决于多种因素,包括您的互联网连接带宽、您所在位置与数据库服务器之间的距离以及您组织数据的方式。
如果其他条件相同,MongoDB 应该能够比 MySQL 更快地处理大型数据项目。
在 MySQL 和 MongoDB 之间选择
选择 MySQL 还是 MongoDB 可能取决于您打算如何使用数据库。
选择 MySQL
对于需要强大的关系数据库管理系统的项目,例如以表格式存储数据,MySQL 可能是更好的选择。对于需要数据安全和容错的情况,MySQL 也是一个不错的选择。如果您拥有长期收集的高质量数据,MySQL 是一个不错的选择。
请记住,要使用 MySQL,您的团队成员需要了解 SQL。如果他们还不知道该语言,您需要提供培训以使他们快速上手。
选择 MongoDB
当您想使用 SQL 以外的数据集群和搜索语言时,MongoDB 可能是更好的选择。任何知道如何用现代语言编写代码的人都可以开始使用 MongoDB。 MongoDB 还擅长快速扩展,允许多个团队协作,并以多种格式存储数据。
因为 MongoDB 不使用数据表来方便浏览,有些人可能难以理解存储在那里的信息。随着时间的推移,用户会逐渐习惯 MongoDB 面向文档的存储系统。