7

我在关系数据库上有一个应用程序,需要更改以保留更多数据。我的问题是只有 2 个表将存储更多数据(多达数十亿个条目),其中一个表由 fk“链接”到其他表。我可以放弃这些表的关系模型。我想保持数据库的其余部分完好无损,只更改这两个表。我还在这些表上做很多查询——从简单的选择到分组和子查询——所以那里有更多的问题。

我在 NoSQL 方面的经验是有限的,所以我在问它的​​哪一个(如果有的话)适合我的需求: - 庞大的数据 - 复杂的查询 - 与 SQL 数据库的集成。这不像前两个重要,如果值得的话,我可以将我的整个数据库迁移到等效的数据库。

谢谢

4

1 回答 1

3

关系数据库和 NoSQL 方法都可以处理具有数十亿数据点的数据。根据所提供的信息,很难做出有意义和具体的建议。了解更多关于您尝试对数据执行的操作、关于硬件和网络拓扑的选择等信息会很有帮助。

我假设由于您当前使用的是关系数据库,您可能已经考虑过分区或以其他方式构建较大的表,以便您的查询性能令人满意。这项活动本身可能不是微不足道的,但恕我直言,在明确需要探索替代方案之前,具有优化 sql 的良好数据库设计可以带您走很长一段路。

但是,如果您的数据使用看起来像一次写入、经常读取、连接依赖项是可管理的,并且您需要对数据集执行一些聚合,那么您可能会开始寻找替代方法,例如 Hadoop 或 MongoDB——但是这些选择在性能、功能、平台要求、延迟等方面进行权衡。如果没有两者之间的一些数据重复,您关于 NoSQL 存储库和 SQL 数据库在查询级别的集成的特定问题可能无法实现。例如,MongoDB 不喜欢连接 (http://stackoverflow.com/questions/4067197/mongodb-and-joins),因此您必须在设计持久性模型时考虑到这一点,这可能涉及数据重复。

我想说的是——确定“正确”的方法将取决于你的具体目标和限制。

于 2012-11-25T20:56:09.563 回答