Цитата Сообщение от Ulula Посмотреть сообщение
если любопытно.. глобально - проблема в том что запросы формируемые ядром остались на уровне мангоса в момент его появления.
если надо что-то изменить (в данном случае это данные из одной таблички - где хранятся спелы связанные с вашим спеком - в другую)
применяется запрос вида "удаляем старое и вставляем новое". делается это из-за того что база использует ключи.
есть 2 возможности изменить данные - это вставка (если записи не существует) либо апдейт данных (если запись с таким ключом уже есть)
всегда использовать вставку нельзя - если запись с таким ключом уже есть будет ошибка.
и использовать апдейт нельзя - если записи не существует - тоже будет ошибка.
а так как предсказать существует запись или нет - нельзя (или как минимум сложно) применяется такая вот метода -
сначала запись всегда удаляется а потом всегда вставляется. ошибок нет и все вроде ок.
но. современные бд работают в несколько потоков. и иногда возникает ситуация когда один и тот же запрос отправляется к базе много раз одновременно.
при этом возникает ситуация когда запрос в первом потоке уже что-то удалил и пытается сделать вставку. второй поток пытается удалить уже удаленное
и оба эти запроса запись блокируют. один не может удалить потому как второй пытается что-то записать а второй не может записать потому что первый в этот момент что-то удаляет. возникает взаимоблокировка. через некоторое время база "понимает" эту ситуацию и все эти запросы отменяет.
при этом получается что удаление - прошло а вставка - нет. данные потерялись (а именно - спел из таблички с талами не переписался в табличку со спелами)

в итоге выглядит это как если имеется 1 нереспределенное очко талантов.

это - как оно возникает.
как решить - несложно в общем. уже давно появился запрос вида "вставить данные но если такой ключ существует - изменить данные по такому ключу"
( INSERT .. ON DUPLICATE KEY UPDATE ..)
запрос такого вида - ничего никогда не удаляет (значит и потери данных не будет).
кроме того - из-за того что изменение данных происходит намного чаще вставки - запрос исполняется примерно в 100 раз быстрее.
(запрос "удалить - вставить" кроме всего прочего удаляет и ключ а потом снова этот ключ формирует)
я думаю что это надо немного в другом месте озвучить...например в каморке кодеров