如果我要记录他/她执行的每个功能的用户IP地址会以任何方式降低应用程序的速度?例如,我可能会记录最后一次登录IP,并且因为IP地址将在下次登录时被覆盖,我将不得不在另一个表中重新登录IP,他/她发布消息,并再次登录另一个站点功能。或者我应该为每个用户保留最后几个IP登录表并从那里计算?
答案 0 :(得分:2)
自然地添加更多日志记录将始终意味着对数据库或日志文件的更多写入,这将减慢速度。
真正的问题是你想要用它来做什么。据推测,这不仅仅是跟踪发布消息的人等等 - 您显然正在使用某种身份验证,因此可能您知道是谁发布了消息。你在使用什么IP地址?
答案 1 :(得分:1)
您是否已经在进行日志记录,是否只需将IP地址添加到现有日志条目中?如果是这样,这不会产生重大影响。它正在将IP地址解析为会对性能产生影响的名称。
答案 2 :(得分:1)
如果您正在尝试建立用户所做事情的历史记录,那么这可能不是一个糟糕的方法。成本取决于查找IP的成本(如果它是一个Web应用程序,可能是微不足道的,因为已经知道该信息)以及将日志写入数据库。除非您使用某种漂亮的AJAX,否则只需记录页面视图就足够了。
答案 3 :(得分:1)
回答这个问题,我会说,没有,包括日志记录中的IP地址,不会减慢速度,也不会增加日志记录机制的额外成本。假设您已经记录了以下内容:
提出的更大问题是:您多久登录一次?
想象一下,您在PC和移动设备上的网站上。真的忘记具体细节,想象你有两个不同的会话。
我会说它回归业务规则或需求。
答案 4 :(得分:1)
所以要直接回答你的问题,是的,添加任何记录步骤都会比没记录任何东西慢。然而,在大多数情况下,这是一个无关紧要的成本。我建议您创建一个只附加到的用户日志表或日志文件。这样您的应用程序就可以插入到表中而无需处理更新语句。您可以随时在单独的流程中清理旧数据。
答案 5 :(得分:0)
为此目的使用MDC可能会减少您在代码中不同位置搜索IP地址的次数。或者甚至更好,将会话ID粘贴到MDC然后遵循该特定会话,总是很容易找出会话对应的IP。