【发布时间】:2015-05-17 20:28:19
【问题描述】:
我目前正在设计一个系统来监督我需要为它们保留日志和数据的一些设备。 每 15 秒从每台设备接收和存储数据。 现在我在设计数据库架构方面有一些经验,但以前没有这种规模。
将有 2 张桌子。 一个带有设备信息,另一个带有统计信息。 问题是,如果我们有 5.000 台设备,那么我们一天内就会有近 2500 万个结果。几周后,这张桌子就会变得足够大。
现在大部分时间我都需要运行关于过去一天的查询 所以我想以某种方式将这一切分解成更多的表格。
让一个一直运行并实时更新,并在每周结束时将所有数据移动到另一个并保留在那里,以防我需要对旧数据运行一些查询。
现在我应该坚持使用 InnoDB 吗?只有我会使用的外键仅用于统计表中的设备 ID。
谢谢
【问题讨论】:
-
尝试阅读有关分区的内容 - 每周/每月创建分区可以让您真正快速地删除旧数据,并且可以更快地处理最新数据。并且磁盘空间在删除分区后直接回收。但是有一些缺点(索引是每个分区的“本地”索引,您不能拥有非分区唯一键 - 这在您的情况下可能无关紧要)。如果您需要长时间存储旧数据,您可以使用一些方法将它们归档到单独的表/数据库/服务器,然后使用快速删除来保持“可操作”表的小
标签: mysql database database-schema