Performance 记录用户活动的IP地址的成本

Performance 记录用户活动的IP地址的成本,performance,logging,Performance,Logging,如果我为他/她执行的每个功能记录用户IP地址,会不会以任何方式降低应用程序的速度?例如,我可能会记录最后一次登录的IP,并且由于IP地址将在下次登录时被覆盖,因此我必须在一个单独的表中再次记录IP,他/她在其中发布消息,然后再次记录另一个站点功能。或者我应该为每个用户保留一个最近几次IP登录的表,并从中进行计算吗?您是否已经在进行日志记录,是否只是将IP地址添加到现有的日志条目中?如果是这样,这不会产生重大影响。将IP地址解析为名称会对性能产生影响。当然,添加更多日志记录总是意味着对数据库或日志

如果我为他/她执行的每个功能记录用户IP地址,会不会以任何方式降低应用程序的速度?例如,我可能会记录最后一次登录的IP,并且由于IP地址将在下次登录时被覆盖,因此我必须在一个单独的表中再次记录IP,他/她在其中发布消息,然后再次记录另一个站点功能。或者我应该为每个用户保留一个最近几次IP登录的表,并从中进行计算吗?

您是否已经在进行日志记录,是否只是将IP地址添加到现有的日志条目中?如果是这样,这不会产生重大影响。将IP地址解析为名称会对性能产生影响。

当然,添加更多日志记录总是意味着对数据库或日志文件进行更多的写入,这会降低速度


真正的问题是你想用它做什么。想必这不仅仅是关于跟踪谁发了一条消息,等等——你显然在使用某种身份验证,所以想必你知道谁发了消息。您使用IP地址的目的是什么?

如果您试图建立用户所做操作的历史记录,那么这可能不是一个坏方法。成本取决于查找IP的成本(如果它是web应用程序,可能很小,因为这些信息已经知道)和向数据库写入日志的成本。除非您使用的是某种漂亮的AJAX,否则只需记录页面视图就足够了

回答这个问题,我想说,,包括日志中的IP地址,不会减慢日志机制的速度或增加任何额外的成本。假设您已经记录了以下内容:

  • 日期时间
  • 访问的URL
  • 屏幕分辨率/操作系统/浏览器
提出的更大的问题是:你应该多久记录一次访问

  • 每次页面加载
  • 每次IP地址改变
假设你在一个网站上,既在你的PC上,也在一个移动设备上。忘记细节吧,真的,想象你有两个不同的会议


我得说,这又回到了商业规则或需求上来了

所以要直接回答您的问题,是的,添加任何日志记录步骤都比不记录任何内容要慢。然而,在大多数情况下,这是一个无关紧要的成本。我建议创建一个只附加到其中的用户日志表或日志文件。这样,应用程序就可以直接插入到表中,而不必处理update语句。您总是可以在一个单独的过程中清除旧数据,这是您认为合适的。

也许为此使用MDC可以减少您在代码中不同位置查找IP地址的次数。或者更好的办法是,将会话ID粘贴到MDC中,然后跟踪特定的会话,很容易找到会话对应的IP。

啊,明白了。好吧,我会小心这一点,因为代理背后的用户(包括AOL用户)可能共享一个IP地址,但实际上是不同的人。我遇到了同样的困境,请看并得出自己的结论。=)