【问题标题】:NoSQL database for an address book with billions of records [closed]用于具有数十亿条记录的地址簿的 NoSQL 数据库 [关闭]
【发布时间】:2015-12-04 20:58:23
【问题描述】:

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

【问题讨论】:

    标签: mongodb cassandra hbase database nosql


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      Cassandra 可能是一个不错的选择。它支持多个数据中心,因此为了获得全球支持,您可以在世界各地建立一些数据中心,通过让客户访问最近的数据中心来减少延迟。

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

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

      现在,如果您想根据主键以外的字段对这些数据进行临时查询,那么 Cassandra 将不是一个好的选择。

      【讨论】:

        【解决方案3】:

        我认为您应该使用 MongoDB。它的文档数据库并支持复制、着色功能。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-09-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-03-29
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多