问题描述
|
我正在尝试查找一个间歇性错误,我只想捕获导致回滚失败的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
}
}
}
您可以覆盖不同的方法,例如更新,查询和其他方法。