Решить все ошибки в mysql.log

Цена договорная
16 апреля 2021, 19:14 • 6 откликов • 52 просмотра
Здравствуйте, для проекта браузерной игры на php 7 (+ mysql и js) необходимо решить mysql ошибки по логу, заметили что они появляются в больших боях, при их появлении начинаются лаги. Также необходимо посмотреть как обстоят дела с PDO, если там что-либо не идеально сделано то исправить и оптимизировать. Также информируем что когда в 1 бой входит 100-120 игроков то нагрузка на бд достигает примерно 74% и соотвественно начинаются лаги в проекте после этого (впринципе думаем если решить все mysql ошибки то все должно исправится).

Несколько основных ошибок во время великого боя и после него в mysql.log (таблица spells отвечает за использование магии (нападение, хил и т.д.)):

1) Query: UPDATE `users`
SET `login2` = "", `money` = "1049.93", `money2` = "154.54",
`win` = "24204", `win_rating` = `win_rating` + 0,
`win_rating_d` = `win_rating_d` + 1, `lose` = "371",
`lose_rating` = `lose_rating` + 0, `lose_rating_d` = `lose_rating_d` + 0,
`nich_rating` = `nich_rating` + 0,
`nich` = "9", `battle` = "-1" WHERE `id` = "18483642" LIMIT 1
Error: Deadlock found when trying to get lock; try restarting transaction

2) Query: UPDATE `items_users` SET `inOdet` = "1" WHERE `id` = "39726845" LIMIT 1
Error: Deadlock found when trying to get lock; try restarting transaction

3) Query: DELETE FROM `spells` WHERE `btl` = "7238794" AND `hod` < 1
Error: Deadlock found when trying to get lock; try restarting transaction


Также необходимо будет расписать изменения для переноса на другой домен.