【发布时间】:2011-05-26 13:27:54
【问题描述】:
我有一个intermittent bug,我正试图追踪它,我只想捕获失败导致回滚的 MySQL 查询。我不想要完整的general query 或binary 日志,因为大海捞针中有数百万个条目需要整理。
像this solution 这样的东西,除了 MySQL 是完美的。
TIA,
京东
【问题讨论】:
标签: php mysql zend-framework innodb rollback
我有一个intermittent bug,我正试图追踪它,我只想捕获失败导致回滚的 MySQL 查询。我不想要完整的general query 或binary 日志,因为大海捞针中有数百万个条目需要整理。
像this solution 这样的东西,除了 MySQL 是完美的。
TIA,
京东
【问题讨论】:
标签: php mysql zend-framework innodb rollback
不是直接回答您的问题,但实用程序 mysqlbinlog 可以从二进制日志中提取数据。
查看:本页用户cmets:http://dev.mysql.com/doc/refman/5.5/en/binary-log.html
还有这个页面:http://ronaldbradford.com/blog/mysql-dml-stats-per-table-2009-09-09/
这是official documentation for mysqlbinlog,它可能会帮助您获得所需的信息。
【讨论】:
在 MySQL 中这是非常困难的(或者可能是不可能的)。你可以在 PHP 中做到这一点。如果你不使用像mysql_query 这样的低级函数,而你使用像->query() 这样的高级函数,你可以给他们添加逻辑。如果查询失败(例如返回 false),将其添加到日志中。对不起我的英语。
Zend_DB 注释:
class My_DB extends Zend_DB {
public function insert($data) {
try {
parent::insert($data);
} catch (Exception $e) {
// put $e->getMessage() to log
}
}
}
您可以覆盖不同的方法,例如更新、查询等...
【讨论】: