我已经设置了一个15分钟的cron作业来监视10+网站的性能(所有这些都托管在不同的服务器上)。每隔15分钟,我将检查服务器是否处于上/下状态,响应时间为ms等。
我希望将这些信息保存到MySQL中,而不是log.txt文件中,这样就可以轻松地检索、查询和分析这些信息。(即)服务器在x天或x月的性能,或x和y天之间的服务器性能)
这是我的桌子看起来像:
id website_ip recorded_timestamp response_time_in_ms website_status
如果我为每个网站插入一个新的条目,每天我将有1440条记录为每个网站(15x4x24),那么对于10个网站,它将是每天14400条记录!
所以,我想每小时/网站只创建一个条目。通过这种方式,我不会每天创建14400条记录,而是每天只为10个网站创建24x 10 =240个记录。
但是,这并不完美,如果我想知道保持全年的记录呢?然后,我将有87600记录,365年,为10个网站。
87600张唱片多吗?我最关心的是服务器本地时间和客户端本地时间之间的差异。如何在不破坏精度和时区的情况下改进设计?
发布于 2014-08-07 16:53:34
这是一个有点长或太短的评论。你的问题的简单答案是“不”。
不,八万七千六百张唱片不是很多记录。事实上,你每年有5256,000份记录的完整数据并不多。如果您有非常宽的记录,它可能是大量的数据,但是您的记录最多只有几十个字节。由此得出的表格每年的容量仍不到1千兆字节。一点也不,真的。
数据库被设计成有大表。您有机会做一些事情来加快对日志文件的查询速度。最明显的是为经常用于选择目的的列创建索引。另一个机会是使用分区将表的存储分解为单独的“文件”(技术上是表空间),因此查询需要更少的I/O。
您可能希望定期总结更多的最新记录,并将结果存储在汇总表中,以便进行最常见的查询。然而,这种详细程度超出了这一答案的范围。
https://stackoverflow.com/questions/25186889
复制相似问题