MYSQL随着时间的推移打破大量数据的最佳方法?

时间:2015-05-17 20:28:20

标签: mysql database database-schema

我目前正在设计一个监控某些设备的系统,我需要为它们保存日志和数据。 每隔15秒从每个设备接收和存储数据。 现在我在设计数据库模式方面有一些经验,但之前没有这个规模。

将有2张桌子。 一个是设备信息,另一个是统计信息。 事实是,如果我们拥有5000台设备,那么我们每天的谈话结果接近2500万。在几周之内,这张桌子就会变得足够大。

现在大部分时间我都需要查询过去一天的查询 所以我想以某种方式把这一切都分解成更多的表格。

让一个人一直在运行并更新,并在每周末说出将所有数据移到另一个并保留在那里,以防我需要使用旧数据运行一些查询。

现在我应该坚持使用InnoDB吗?我只使用外键来统计stats表中的设备ID。

谢谢

1 个答案:

答案 0 :(得分:3)

如果您通常只想查看过去一天的数据,那么我的建议是按天划分数据。您可以了解有关MySQL分区here的更多信息。

根据查询,您还需要日期和设备上的索引。每天有2880万行,许多查询应该在合理的时间内完成。

分区的一个不错的方面是它们可以被删除和存档,而对数据库的性能影响最小。

顺便说一句,每15秒5,000次插入是333次插入/秒。您需要确保您的硬件足以满足此交易量。

相关问题