【发布时间】:2012-06-29 14:08:51
【问题描述】:
我遇到了记录 LAMP (Debian/PHP/MySQL) 站点的数据库活动的问题。
这很复杂,因为我希望每个查询都记录在用户启动它们的上下文中,比如说“谁做了什么”。我承认对 MySQL 的日志记录功能不太了解,但我在查找有关我的特定场景的信息时遇到了问题。
现在我们已经实现了一个mysql_query() 替换(我知道,我知道,使用 PDO 和准备好的语句重写代码正在进行中!) 执行查询并使用 INSERT DELAYED 记录它在日志表中。
问题是,可以很容易地预测,日志表达到数百万行,其中最旧的行是毫无用处的。另一个问题是,对于每个需要的查询,都会执行两个。部分解决方案是不记录SELECTs。
另一种解决方案是使用花哨的日志轮换和 gzip 压缩等内容登录文本文件。但是如何知道运行查询的用户上下文呢?
是否有人实现了一个成功的查询记录器,该记录器还记录已登录的用户并且具有性能意识?
【问题讨论】:
-
记录mysql进程列表对你有用吗?