Я получаю эти ошибки, когда пытаюсь удалить строки из таблицы. Особый случай здесь заключается в том, что я могу запустить 5 процессов одновременно.
Сама таблица является таблицей Innodb с ~ 4,5 миллионами строк. У меня нет индекса для столбца, используемого в моем предложении WHERE. Другие индексы работают как положено.
Это делается в транскрипции, сначала я удаляю записи, затем я вставляю замещающие записи, и только если все записи вставлены, транзакция будет зафиксирована.
Сообщение об ошибке:
Ошибка запроса: превышено время ожидания блокировки; попробуйте перезапустить транзакцию при выполнении команды DELETE FROM tablename WHERE = значение
Поможет ли это создать индекс для указанного столбца здесь? Должен ли я явно заблокировать строки?
Я нашел дополнительную информацию в вопросе # 64653 , но я не думаю, что она полностью покрывает мою ситуацию.
Уверен ли, что это ошибка оператора DELETE, вызывающая ошибку, или это могут быть другие операторы в запросе? Оператор DELETE - первый, поэтому он кажется логичным, но я не уверен.