设计这个 MySQL 大数据库的最佳方法

设计这个 MySQL 大数据库的最佳方法

我计划设计一个仅包含 2 个表(stats1 和 stats2)的数据库,但是,这些表将包含 40 000 000 条记录!

所有记录都将是“正/无符号”整数。

MySQL 客户端版本:5.0.91

以下是有关这两个表的一些信息:

统计1

当前总记录数 = 10 000 000

包含 3 列存储固定数字,如下所示:

  • 列A = 12345678901
  • 列 B = 1234
  • 列C = 12345678

统计2

目前总记录数 = 5 000 000

包含 3 列存储固定数字,如下所示:

  • colA = 1234567890
  • 列 B = 12345678901234
  • 列C = 12345678

我对 MySQL、PHPmyadmin 了解一点,但需要您的建议以提高其效率。

答案1

MySQL 可以处理这种规模而不会出现严重问题(我们存储了超过 1 亿的数据)。

数据的增长率是多少?每分钟/每小时/每天插入 1000 条记录?增长是恒定的还是会批量添加记录(即一批 100000 条记录)?

您的用法是关键。如果您使用聚合函数(sum 等)进行任意查询,性能将受到影响。

如果数据相对静态,并且您要对其执行分析类型的函数,我会考虑使用列导向数据库引擎。例如 InfoBright 或 InfiniDB。这两个引擎都适用于 MySQL 客户端。如果您知道如何使用 MySQL,您可以使用它们。但是,根据您想要访问和查询数据的方式,它们可能不适合您。

答案2

首先,4×10⁷ 列,每列包含三个整数,不算太大。我想即使是 Sqlite 或不太强大的数据库也可以处理这么多的记录。

现在,如果你问效率,一切都取决于数据库的使用情况。你所说的只是如何存储数据,但更重要的是如何使用.考虑以下情况:

  • 这些数字由卫星发送并存储在数据库中以供进一步分析,
  • 这些数字是从实验中收集的,在存储它们之前必须检查它们是唯一的,
  • 这些数字用于统计,并从一台机器上逐个检索,
  • 数百台机器并行随机访问这些数字。

每个案例都需要不同的方法。

相关内容