Здравствуйте, помогите пожалуйста с проблемой:
Drupal\Core\Database\DatabaseExceptionWrapper: SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction: UPDATE {user} SET step=:db_update_placeholder_0 WHERE id = :db_condition_placeholder_0; Array ( [:db_update_placeholder_0] => st2 [:db_condition_placeholder_0] => 297 ) in Drupal\mymodule\Repository\UserRepository::UpdateUser() (line 85 of /modules/custom/mymodule/src/Repository/UserRepository.php).
вот сама функция:
<?php
public static function UpdateUser($step, $id) {
$connection = Database::getConnection();
$transaction = $connection->startTransaction();
try {
$query = $connection->update('user');
$query->fields(['step' => $step]);
$query->condition('id', $id);
$query->execute();
} catch (Exception $e) {
$transaction->rollBack();
drupal_set_message($e->getMessage(), 'error');
}
}
?>
Как я понял это из-за того, что очень много запросов update, но как быть щас? как это можно исправить?
Увеличил innodb_lock_wait_timeout с 50 до 100, но помогло не сильно
Комментарии
Настраивается в phpMyAdmin файл config.inc.php
вроде понял в чем была проблема, но всё равно спасибо
Проблема была в том, что забыл указать индексы к полям, теперь запросы выполняются быстрее, и вроде таких ошибок больше нет