gpt4 book ai didi

php - 查询密集型网站中的查询日志记录场景

转载 作者:行者123 更新时间:2023-11-29 06:58:45 26 4
gpt4 key购买 nike

我面临着记录 LAMP (Debian/PHP/MySQL) 站点的数据库事件的问题。

这很复杂,因为我希望每个查询都记录在启动它们的用户上下文中,以便知道,比方说,“谁做了什么”。我承认我不太了解 MySQL 的日志记录功能,但我在查找有关我的特定场景的信息时遇到了问题。

现在我们已经实现了 mysql_query() 替换 (我知道,我知道,使用 PDO 和准备好的语句重写代码正在路上!) 执行查询并在日志表中用 INSERT DELAYED 记录它。

问题是,正如人们很容易预测的那样,日志表达到了数百万行,其中最旧的行毫无用处。另一个问题是,对于每个需要的查询,都会执行两个。部分解决方案是不记录 SELECT

另一种解决方案是使用精美的日志轮换和 gzip 压缩等功能登录文本文件。但是如何了解运行查询的用户上下文呢?

是否有人实现了一个成功的查询记录器,该记录器还记录了已登录的用户并且具有性能意识?

最佳答案

这是一个权衡。如果您想记录用户事件,它将占用大量空间并使用更多处理。

我个人记录所有对 PHP 文件的 HTTP 请求(包括 GET、POST、COOKIE 等),而不是 SQL 查询。但这仍然导致数百万行。我也永远保留它们,因为 HDD 空间通常很便宜。当我需要做审计时,它可能会很慢,但我不需要经常审计。

写入文件只会使分析变得更加困难,并且您仍将在每个请求中处理额外的 IO。

如果空间有问题,您可以运行一个 cron 作业来删除所有早于 X 时间的行。

关于php - 查询密集型网站中的查询日志记录场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11263337/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com