mysql - 最适合数十亿索引的数据存储

标签 mysql postgresql cassandra riak

所以我们希望存储两种索引。

  1. 第一种将是数十亿个数量级,每个具有 1 到 1000 个值,每个值都是一个或两个 64 位整数。
  2. 第二种将是数百万个数量级,每个大约有 200 个值,每个值的大小在 1KB 到 1MB 之间。

我们的使用模式将是这样的:

  • 这两种索引都会有高达每秒数千次的值添加到顶部。
  • 索引不会被频繁读取,但当它们被读取时,将读取整个索引
  • 应该修剪索引,无论是在将值写入索引时还是在某种批处理类型的作业中

现在我们已经考虑了很多数据库,目前我们最喜欢的是 Cassandra 和 PostreSQL。然而,我们的应用程序是在 Erlang 中,它没有针对 Cassandra 的生产就绪绑定(bind)。一个主要的要求是它不能需要太多的人力来维护。我感觉 Cassandra 会抛出意想不到的扩展问题,而 PostgreSQL 只会让分片变得痛苦,但至少对我们来说这是一个已知的数量。我们已经熟悉 PostgreSQL,但对 Cassandra 不是很熟悉。

所以。关于哪种数据存储最适合我们的用例,有什么建议或建议吗?我愿意接受任何和所有的建议!

谢谢,

-亚力克

最佳答案

您没有提供足够的信息来支持关于您的索引设计的大部分答案。但是,Cassandra 可以通过扩大集群来轻松扩展。

您可能想阅读这篇文章:http://techblog.netflix.com/2011/11/benchmarking-cassandra-scalability-on.html

对于 Cassandra 来说,一个更重要的问题是它是否支持您需要的查询类型——可伸缩性不是问题。从您提供的数字来看,听起来我们正在谈论 TB 或数十 TB,这对 Cassandra 来说是非常安全的领域。

关于mysql - 最适合数十亿索引的数据存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9119307/

相关文章:

mysql - 如何加快MySQL的搜索速度?是否可以使用特殊字符进行全文搜索?

database - 什么时候不使用 Cassandra?

php - 将返回的记录集转换为数组

mysql - 用于选择回退选项的 SQL 查询

PHP mySQL,将内容插入到两个表中

postgresql - py.test 混合装置和 asyncio 协程

postgresql - 在 EMR 上将 Postgresql JDBC 源代码与 Apache Spark 结合使用

postgresql - 简单的更新查询花费的时间太长 - Postgres

java - Storm - 寻找延迟源

java - Cassandra部署集群失败