存储10亿条记录的最佳关系数据库

时间:2018-02-27 04:32:23

标签: mysql node.js indexing rds full-text-indexing

我想在单个表中存储10亿条记录,并且只使用非常有限的用户频繁执行搜索操作。

表格式

注册ID(唯一)|名称|年龄|性别|地址

ABC / 12 / XY / 34 | ABC | 25 M |一些地址是gere

问题:

- 我可以使用mysql存储10亿条记录并对其进行频繁搜索

-Backend是在aws上托管的nodejs上,是否有任何工具可以使这个无缝连接?

-Registration ID是唯一的列,我应该应用哪些约束来加快搜索速度(散列或索引或其他什么?)

2 个答案:

答案 0 :(得分:0)

由于您已经加入AWS,请尝试使用Amazon Aurora(MySQL)。确保选择具有足够RAM的实例类型,以便缓存足够大以用于索引。如果您不经常插入并只是查询,请将您的注册ID字段设置为主键。如果您按注册ID进行搜索,这将有助于加快您的查询速度。虽然如果您的硬件可以胜任任务,那么使用庞大的表是可行的,但通常最好将数据分成多个表。您应该尝试存储以" A"开头的那些记录。在1表中的注册ID中,以" B"在另一个等等。

答案 1 :(得分:0)

任何关系数据库都可以处理十亿行。

出现性能问题
  • 索引不足 - 特别是'复合'索引
  • 配置不当的查询 - 例如在函数调用中隐藏索引列。

如果这是一个"数据仓库"申请,"汇总表"对表现至关重要。

在某些情况下,我问"你真的需要保留数据吗?"如果您愿意描述您的数据集,我将详细说明为什么您可能不需要保留所有数据集。

您的查询"点查询"?示例:给定一个registration_id,获取其余的数据。 - 无论数据库引擎,表大小等如何,这都是非常琐碎,非常快。

(我很难相信你会去注册十亿不同的人!)

摄取速度怎么样?计算在合理的时间内达到十亿行所需的每秒行数。

必须草拟你的查询,这样我们就可以帮你设计表格,索引甚至是十亿行的查询。