是否可以配置MySQL日志记录,使其仅报告已回滚的查询?

问题描述

| 我正在尝试查找一个间歇性错误,我只想捕获导致回滚失败的MySQL查询。我不希望有完整的常规查询或二进制日志,因为干草堆中有数百万个条目需要排序。 除了MysqL之外,类似这样的解决方案将是完美的。 TIA, 京东     

解决方法

不是直接回答您的问题,而是实用程序
mysqlbinlog
可以从二进制日志中提取数据。 请参阅:此页面中的用户评论:http://dev.mysql.com/doc/refman/5.5/en/binary-log.html 以及此页面:http://ronaldbradford.com/blog/mysql-dml-stats-per-table-2009-09-09/ 这是mysqlbinlog的官方文档,它可以帮助您获取所需的信息。     ,在MySQL中,这是非常困难的(或可能是不可能的)。您可以在PHP中完成。如果您不使用像ѭ1这样的低级函数,而使用像-> 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
        }
    }
}
您可以覆盖不同的方法,例如更新,查询和其他方法。