Python mysql事务仅部分提交
我一直看到使用innodb表的部分提交事务:Python mysql事务仅部分提交,python,mysql,sqlalchemy,Python,Mysql,Sqlalchemy,我一直看到使用innodb表的部分提交事务: 我的所有表都使用innodb作为后端 mysql版本:5.5.31-0ubuntu0.13.04.1-log 基于uwsgi的pythonweb应用程序,每个http请求都包装在一个单独的事务中,该事务要么提交,要么回滚,这取决于请求期间是否生成异常 每个请求服务进程都使用一个mysql连接,该连接不在进程之间共享 另外两个进程连接到数据库以执行后台任务,这些任务都打包在事务中 事务都是通过sqlalchemy中间件创建和跟踪的,该中间件被配置为不改
总而言之,我看不出我可能做错了什么。我无法想象我在mysql存储后端遇到了一个bug,因此,我正在寻求有关如何进一步调试此问题的帮助,以及我上面所做的最有可能是错误的假设。我花了一些时间,但事务似乎是由错误1213(死锁)和1205(超过锁等待超时)自动回滚的。这些错误被一些内部中间件捕获,这些中间件试图再次执行失败的语句,而不是将错误转发到事务层,在事务层中,整个事务可以作为一个整体重试或放弃。结果是,代码将继续正常执行,前提是正在进行的事务在mysql服务器回滚时仍在进行