首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MySQL中存储日志记录时的性能问题

在MySQL中存储日志记录时的性能问题
EN

Stack Overflow用户
提问于 2014-08-07 15:50:56
回答 1查看 31关注 0票数 0

我已经设置了一个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张唱片多吗?我最关心的是服务器本地时间和客户端本地时间之间的差异。如何在不破坏精度和时区的情况下改进设计?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-07 16:53:34

这是一个有点长或太短的评论。你的问题的简单答案是“不”。

不,八万七千六百张唱片不是很多记录。事实上,你每年有5256,000份记录的完整数据并不多。如果您有非常宽的记录,它可能是大量的数据,但是您的记录最多只有几十个字节。由此得出的表格每年的容量仍不到1千兆字节。一点也不,真的。

数据库被设计成有大表。您有机会做一些事情来加快对日志文件的查询速度。最明显的是为经常用于选择目的的列创建索引。另一个机会是使用分区将表的存储分解为单独的“文件”(技术上是表空间),因此查询需要更少的I/O。

您可能希望定期总结更多的最新记录,并将结果存储在汇总表中,以便进行最常见的查询。然而,这种详细程度超出了这一答案的范围。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25186889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档