我很好奇是否有人在NoSQL数据库中访问Oracle数据的基准(特别是我在谈论Oracle RAC)? 该项目需要使用至少10mil +的记录,在其中搜索(但不一定必须是实时),读取对于速度非常重要,并且保证HA和可靠性(不能丢失记录!!!) 我可以自己看看Cassandra / MongoDB如何更适合(因为当你超过10mil记录时,键值存储将提供比SQL更快的读取),但我发现很难很好地表达所有这些。有链接吗?建议?子弹点? 谢谢!
答案 0 :(得分:5)
1000万条记录。假设每条记录250个字节。这大约是2.5 Gb的数据,完全在基本台式机/笔记本电脑的容量范围内。数据量无关紧要(除非每个记录的大小均以Mb为单位,例如图片或音频)。
您需要谈论的是交易量(分为读写)和您认为的HA。相对于“读写HA”,只读HA很容易。将只读数据集复制到不同地理位置的多个服务器并在其上分配查询工作负载可能很简单。
扩展更新繁重的工作负载要困难得多,这就是为什么当一个大型音乐会的门票发布时,你经常会听到系统崩溃的原因。很简单,只有固定数量的座位,你不能拥有10个重复的系统,每个系统都出售他们认为可用的东西。必须有一个单一的事实来源,这意味着瓶颈(可能是单点故障)。
在HA方面,RAC是一种共享存储技术,通常意味着您的RAC节点非常接近。这可能使他们容易受到诸如建筑物火灾或电信故障等局部事件的影响。 Data Guard是与异地复制和故障转移相关的Oracle技术。
答案 1 :(得分:0)
大多数情况下,当您比较NoSQL与SQL时,您必须了解它们之间非常重要的区别。 NoSQL中的数据可能在成本顺序上不一致以实现HA 。
不一致是什么意思?这取决于,但通常在 3-5秒内传播节点周围的数据。 NoSQL数据库提供了管理和消除它的机制,但如果您希望所有数据实时一致,那么您只需使用经典SQL,如Oracle RAC。
回到速度比较:它简直无比,哪一个更快,因为它继承了网络基础设施,计算能力和数据库模型等因素。但重要的是,在某些时候你可能会达到SQL <强大>经济效率低下维护,你必须切换到NoSQL。