我计划设计一个仅包含 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 或不太强大的数据库也可以处理这么多的记录。
现在,如果你问效率,一切都取决于数据库的使用情况。你所说的只是如何存储数据,但更重要的是如何使用.考虑以下情况:
- 这些数字由卫星发送并存储在数据库中以供进一步分析,
- 这些数字是从实验中收集的,在存储它们之前必须检查它们是唯一的,
- 这些数字用于统计,并从一台机器上逐个检索,
- 数百台机器并行随机访问这些数字。
每个案例都需要不同的方法。