为什么说关系数据库不擅长可伸缩性?为什么NOSQL数据库在这里具有优势?

时间:2019-07-15 09:10:05

标签: sql nosql relational-database sharding

许多文章声称关系数据库无法扩展,而NOSQL则更胜一筹,但没有解释原因。可伸缩性通常被认为是NOSQL的优势。扩展关系数据库有什么问题?是什么使NOSQL数据库在可伸缩性方面优于关系数据库?

2 个答案:

答案 0 :(得分:1)

SQL和NOSQL数据库均可扩展。但是,NOSQL数据库具有一些简化的功能,可以提高可伸缩性。

例如,SQL数据库通常强制执行一组称为ACID属性的属性。这些可以确保数据随时间推移的一致性,并且能够“一次全部”执行整个事务。

但是,在多处理器环境中运行时,要严格维护ACID属性会产生开销。基本上,所有处理器 上的数据都需要看起来相同。

NOSQL数据库通常实现“ ACID-lite”。例如,它们提供“最终一致性”。这意味着在几秒钟或几分钟内,查询可能会返回不同的值,具体取决于哪个处理器处理该查询。而且,这对于许多应用程序来说都是很好的。

答案 1 :(得分:0)

这确实取决于企业的长期需求和期望的数据量。另一个关键因素是就我们是否仅需要OLTP类场景而报告少的需求,这意味着实施ACID场景。对于与SQL相比至关重要的报告,通常没有SQL是最好的。由于两者都拥有自己的Mertis,但理想情况下,两者兼具的混合模型通常在具有可伸缩性和SQL DB上更好的事务控制的情况下更好地工作,并且使用NO SQL DB进行高性能报告,从而允许所有自由度,例如图DB,Key价值对。对于要评估的特定数据库,有很多有趣的比较可用。 普尼特(Puneet)