我们看到大量关于将关系数据放入 noSQL 并需要对其进行非规范化的帖子。这真的是因为工具不存在吗?playOrm 的 S-SQL 似乎可以很好地扩展。如果您不使用分区,它将无法扩展,您只需将 DBMS 数据移动到仍然无法扩展的 noSQL 存储中,但是一旦移动到分区,它就可以很好地扩展。
所以我的问题是我们真的有工具问题吗?我们会看到越来越多的工具,比如 playOrm,它们可以加入并可以处理 noSQL 存储中的关系数据,就像我们在 DBMS 中处理关系数据一样?
谢谢,院长
我们看到大量关于将关系数据放入 noSQL 并需要对其进行非规范化的帖子。这真的是因为工具不存在吗?playOrm 的 S-SQL 似乎可以很好地扩展。如果您不使用分区,它将无法扩展,您只需将 DBMS 数据移动到仍然无法扩展的 noSQL 存储中,但是一旦移动到分区,它就可以很好地扩展。
所以我的问题是我们真的有工具问题吗?我们会看到越来越多的工具,比如 playOrm,它们可以加入并可以处理 noSQL 存储中的关系数据,就像我们在 DBMS 中处理关系数据一样?
谢谢,院长
在传统的 OldSQL 数据库中,您可以通过消除连接需求来进行非规范化以提高读取性能,但代价是更复杂的更新。在 NoSQL 数据库中,由于缺乏对连接的支持,您可能需要进行非规范化。它仍然有利于读取性能,但会使更新复杂化,尤其是在 NoSQL 数据库不支持事务的情况下。在数据库顶部的工具中添加对连接的支持会增加另一层,这肯定会降低性能,甚至比底层数据库支持连接的情况还要严重。
如果某些东西可以很好地水平扩展(几乎是线性的),则可以通过添加更多节点轻松实现性能。仅当数据被分区时,连接才能很好地水平扩展,以便两行/帖子之间的每个连接都可以在一个数据库节点中本地执行。对于某些预定义的连接,这可能会实现,但我认为,一般来说,大多数 NoSQL 数据库在支持涉及连接的复杂即席查询时都会遇到性能问题。
看看另一种选择,我们的 NewSQL 数据库 Starcounter 确实支持连接查询并提供出色的性能。