【发布时间】:2015-12-04 20:58:23
【问题描述】:
哪个数据库适合存储具有数十亿行(姓名、电子邮件地址、电话号码等)的地址簿? 该应用程序将是非常密集的读取 (>99%) 并且需要与分布在全球的服务器提供高度一致性。 查询将使用电子邮件地址或电话号码。 我目前正在考虑 HBase、Cassandra 或 MongoDB。
【问题讨论】:
标签: mongodb cassandra hbase database nosql
哪个数据库适合存储具有数十亿行(姓名、电子邮件地址、电话号码等)的地址簿? 该应用程序将是非常密集的读取 (>99%) 并且需要与分布在全球的服务器提供高度一致性。 查询将使用电子邮件地址或电话号码。 我目前正在考虑 HBase、Cassandra 或 MongoDB。
【问题讨论】:
标签: mongodb cassandra hbase database nosql
由于 MongoDB 具有复制等功能(在地理上也是冗余的),使其具有高可用性,因此 MongoDB 将是一个更好的选择。它还提供了在数据副本上配置读取首选项的工具。请参考以下链接,根据您的业务需求决定使用哪个数据库。
【讨论】:
Cassandra 可能是一个不错的选择。它支持多个数据中心,因此为了获得全球支持,您可以在世界各地建立一些数据中心,通过让客户访问最近的数据中心来减少延迟。
对于基于电子邮件地址和电话号码的快速查找,您可能会将非规范化的数据存储在两个表中,一个表使用电子邮件作为主键,另一个表使用电话号码作为主键。
您应该能够通过添加更多节点来获得所需的读取性能,因为读取性能会随着您在每个数据中心中拥有的节点数量而扩展。
现在,如果您想根据主键以外的字段对这些数据进行临时查询,那么 Cassandra 将不是一个好的选择。
【讨论】:
我认为您应该使用 MongoDB。它的文档数据库并支持复制、着色功能。
【讨论】: