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