拥有数十亿条记录的地址簿的NoSQL数据库



哪个数据库适合存储包含数十亿行(姓名、电子邮件地址、电话号码等)的地址簿?应用程序将是非常密集的读取(>99%),并且需要与分布在世界各地的服务器保持高一致性。查询将在电子邮件地址或电话号码。我目前正在考虑HBase、Cassandra或MongoDB

由于MongoDB具有复制(地理上也是冗余的)等功能,使其具有高可用性,因此MongoDB将是更好的选择。它还提供了在数据副本上配置读取首选项的功能。请参考以下链接,根据您的业务需求决定使用哪个数据库。

https://lh5.googleusercontent.com/c_vcKz-Jo3XmIHutpOtJxBoysMt_Ny_PL-0cB4Czh4FvIbTEpe9lObaA6sTwsdHJdrtMXqOBNCNoRxYQYnIlu9MxuYIMWcl5dgUSCADFAfOXWuyWRgKWFk99Pg

Cassandra可能是一个不错的选择。它支持多个数据中心,因此对于全球支持,您可以在世界各地设置几个数据中心,通过让客户访问最近的数据中心来减少延迟。

对于基于电子邮件地址和电话号码的快速查找,您可能会将数据非规范化地存储在两个表中,其中一个表使用电子邮件作为主键,另一个表使用电话号码作为主键。

您应该能够通过添加更多节点来获得所需的读取性能,因为读取性能将随着每个数据中心中节点的数量而扩展。

现在,如果您想基于主键以外的字段对该数据进行特别查询,那么Cassandra将不是一个好的选择。

我认为你应该去MongoDB。其文档数据库并支持复制、着色等功能。

最新更新