Error 1032: Can't find record in

Labutin

Новичок
Есть простой SQL запрос (привожу прямо как есть без изменений):
PHP:
update vsm_user_docs set f_summ_orders=f_summ_orders+3665.77 WHERE f_login='vasya' AND f_doc_num='123456' AND f_update_state<2
Выполняется тусячи раз в день для разных клиентов. Примерно один раз в день падает вот с такой ошибкой:
Error Number :1032
Description :Can't find record in 'vsm_user_docs'

Ну вроде как если бы не было строки, то и обновилось бы ноль строк. А зачем ошибка-то ?
Куда посоветуете копать?

P.S. MySQL версия сервера: 5.0.77-log
 

Labutin

Новичок
Пробовал, ситуация повторяется.
Точнее делал check, т.к. repair к InnoDB таблицам неприменим.
Забыл написать, что таблица InnoDB
 

prolis

Новичок
еще могу пальцем в небо предполагать нехватку места на диске и перестройку индексов
 

Labutin

Новичок
Место надиске полно. foreign keys во всей базе не используются. Количество записей в таблице около 10 тыс.
 

baev

‹°°¬•
Команда форума
Да, по любому — нехватка ресурсов: места на диске/оперативки/процессор занят.
 

Labutin

Новичок
baev
Есть ссылка, где можно почитать, что нехватка ресурсов приводит именно к этой ошибке?
 

fixxxer

К.О.
Партнер клуба
А в логах mysql и в системных логах ничего странного нет?
Очень похоже, что бьются innodb таблички. Тут надо разбираться в чем дело всесторонне, может быть баг innodb, может быть нехватка ресурсов, могут быть проблемы с железом.
 

emptiness

Новичок
М.б. добавить SELECT ... FOR UPDATE:
PHP:
update vsm_user_docs set f_summ_orders=f_summ_orders+3665.77 WHERE id in(select id from vsm_user_docs WHERE f_login='vasya' AND f_doc_num='123456' AND f_update_state<2 FOR UPDATE);
ну или что-то в этом духе.
 
Сверху