处理 mysql 个死锁
Handling mysql deadlock
我有以下 SQL 声明:
self.cursor.execute('''INSERT INTO main_iteminstance (...) VALUES (...)''')
此操作在两个小时的脚本中运行了数百万次。然而,大约每十个脚本运行一次,它就会陷入死锁:
OperationalError: (1205, 'Lock wait timeout exceeded; try restarting transaction')
我该如何处理?我的想法是执行以下操作 --
while True:
try:
self.cursor.execute('''INSERT INTO main_iteminstance (...) VALUES (...)''')
except MySQLdb.OperationalError:
continue
else:
break
这是最好的模式吗?或者有更好的方法吗?
你能把你的价值观分解成这样吗?
INSERT INTO main_item_instance (...) VALUE (...), (....), ....
你必须单独插入还是可以在脚本末尾插入一大段?
我有以下 SQL 声明:
self.cursor.execute('''INSERT INTO main_iteminstance (...) VALUES (...)''')
此操作在两个小时的脚本中运行了数百万次。然而,大约每十个脚本运行一次,它就会陷入死锁:
OperationalError: (1205, 'Lock wait timeout exceeded; try restarting transaction')
我该如何处理?我的想法是执行以下操作 --
while True:
try:
self.cursor.execute('''INSERT INTO main_iteminstance (...) VALUES (...)''')
except MySQLdb.OperationalError:
continue
else:
break
这是最好的模式吗?或者有更好的方法吗?
你能把你的价值观分解成这样吗?
INSERT INTO main_item_instance (...) VALUE (...), (....), ....
你必须单独插入还是可以在脚本末尾插入一大段?