现在,在我们的网站中,我们正在 MySQL 或文本文件中记录所有用户 Activity (登录、点击等)。
在这两种情况下,IO 操作都会增加,从而导致站点性能下降。
我们需要不惜一切代价捕获用户 Activity 日志,是否有其他更好的方法可以在不影响网站性能的情况下捕获日志?
最佳答案
一些建议。
首先,Web 服务器(例如 Apache httpd)针对每个请求以纯文本文件形式捕获自己的日志。您可以使用标准Common Log Format或者您可以自定义它。这些日志有一个广泛的处理软件生态系统。如果您使用这些日志,您可以完全从应用程序代码中删除日志记录。您仍然会保留日志。我相信,这是性能最好的解决方案。但处理原木可能会很麻烦。
其次,您说您正在登录 MySQL 和文本文件。只登录其中一个怎么样?
第三,MySQL 提供 ARCHIVE
access method对于 table 。它的写入成本非常低,并且占用少量磁盘空间。如果您使用 MySQL 进行日志记录,您应该考虑这种访问方法。它的缺点是不能建立索引。也就是说,MySQL 需要扫描整个表来满足其中包含 WHERE
子句的查询。
关于mysql - 捕获用户 Activity 日志的好工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28478019/