mysql尝试重新启动事务_如何修复“尝试获取锁时发现死锁;尝试重新启动事务”Django/MySQL应用程序...

我有一个使用MySQL的django应用程序,目前在调试一个死锁时遇到了一个问题(我对SQL比较陌生),这种死锁是偶尔发生的(这种情况在一两个小时内不会发生,然后突然间我会连续出现10个死锁)。我的应用程序是流式实时股权信息约600证券,然后为每个证券更新约50种不同的计算。在

这似乎是导致问题的代码块:cursor.execute('UPDATE position_mgmt_securities '

'INNER JOIN position_mgmt_issuers ON position_mgmt_securities.issuer_id = position_mgmt_issuers.id '

'INNER JOIN position_mgmt_positions ON position_mgmt_securities.id = position_mgmt_positions.security_id '

'SET moneyness_pct = CONVERT(underlying_price / strike_price - 1, DECIMAL(12,5)) '

'WHERE (position_mgmt_securities.issuer_id IN '

'(SELECT id '

'FROM (SELECT * FROM position_mgmt_issuers) AS x '

'WHERE x.ticker = "{0}") AND position_mgmt_positions.close_date IS NULL AND position_mgmt_securities.security_type_id = "ECO")'.format(ticker.replace(' EQUITY', '')))

运行SHOW ENGINE INNODB STATUS时,我得到以下死锁信息。在

^{pr2}$

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值