在我的数据库中运行某个查询时,我经常收到以下错误(所有表都使用 InnoDB 存储引擎):“尝试获取锁定时发现死锁;尝试重新启动事务”
查询是DELETE FROM sessions WHERE userid != 0 AND lastactivity < 1289594761 AND admin = 1 AND userid NOT IN (SELECT userid FROM users WHERE (userflags & 1048576))
当我将 NOT IN 部分添加到 WHERE 语句中时,错误开始发生。为什么这会引起问题,我能做些什么来防止这种情况发生?