【发布时间】:2013-10-18 05:09:27
【问题描述】:
我正在寻找一种存储解决方案,该解决方案(仅)对基本查询快速且依赖于大型但简单的数据集;没有其他限制。
数据由 5 亿项组成,形状如下:
{
a: VARCHAR(100)
b: VARCHAR(100)
c: VARCHAR(100)
}
我想快速解决以下基本查询:
“给我第 X 页的项目 a = X AND b = Y AND and C = Z”
这三个约束中的任何一个都是可选的,例如,a = X 也是一个有效的查询。
所以我只想查询单行内的字段相等性。
(其他查询并不重要。永远不需要连接。)
此外,我希望对每个查询进行快速计数估算。
例如,我想知道a = X 大约有 200 万个项目。
哪些存储解决方案/配置最适合,为什么?
更新:知道基础数据很少更改也可能很好 并且一次全部添加到 ± 2000 万个项目的批次中。
我目前尝试将数据摄取到 MySQL 数据库中,每列都有索引。我得到了多达1亿个项目,查询性能非常好。但是,服务器变得非常不稳定,导入过程随机停止。我正在使用
LOAD DATA。
【问题讨论】:
-
这是 RDBMS 的基础,我喜欢 postrgres,但每个人都有自己的。
-
@ilanberci 看起来确实很基础,但我在使用 MySQL 处理这样的数量时遇到了巨大的困难。这让我觉得它可能不像看起来那么基础……PostgreSQL 会处理得更好吗?
-
请尝试 postgres(我不隶属于他们),它可以轻松处理这种类型的负载。请确保您的每一列都按照您之前提到的那样单独编入索引。另外,如果你在做相等比较,使用哈希索引而不是 btree
-
您是在寻找完全匹配,还是同时搜索?
-
@Bertvan 仅完全匹配。
标签: database performance storage bigdata