Я получаю следующую ошибку довольно часто при запуске определенного запроса в моей базе данных (все таблицы используют механизм хранения InnoDB): «Тупик обнаружен при попытке получить блокировку, попробуйте перезапустить транзакцию»Deadlock, найденный в MySQL (InnoDB)
Этот запрос DELETE FROM sessions WHERE userid != 0 AND lastactivity < 1289594761 AND admin = 1 AND userid NOT IN (SELECT userid FROM users WHERE (userflags & 1048576))
ошибки начали происходить, когда я добавил не частично к моему WHERE заявление. Почему это вызывает проблемы и что я могу сделать, чтобы предотвратить это?
Хотя вы можете свести к минимуму тупики, см. Http://stackoverflow.com/questions/2596005/working-around-mysql-error-deadlock-found-when-trying-to -get-lock-try-restartin – nos