这是我的问题的免费创建示例:
每 15 秒我运行一个 php 脚本来检查 +5 个服务器的状态。它得到ping
,status
和. 数据应存储两周,之后可以将其删除。version
motd
目前我会这样存储它:
Table 1:
server_ID | name | ip | last_update
Table 2:
ID | server_ID | status | ping | version | motd | timestamp
我认为通过这种方式,什么都不会翻倍,我可以轻松地重命名服务器或更改其 ip。
但是我应该如何删除旧行?如果我每次脚本运行(每 15 秒)都这样做,会不会太过分了?14*24*60*4 = 80640 rows per server for the two weeks
或者我应该如何存储数据,以便我能够拥有最新数据以及显示 2 周折线图的数据?
也许是第三张表,它有每小时的数据。
编辑:
谢谢您的回答。那这个呢:
在 15 秒更新时,我将所有数据放入表 1 中,但我对其进行了更新,因此每台服务器只有一行。
然后我每小时使用这个触发器并将当前数据复制到一个新表中并从中删除超过 2 周的所有内容?
目前我已将表 1 中的 server_ID 和表 2 中的 ID 设置为主键,是否有充分的理由将时间戳设置为主键?