У меня большое производственное веб-приложение (Glassfish 3.1 + MySQL 5.5).Все таблицы InnoDB.Раз в несколько дней приложение полностью зависает.SHOW FULL PROCESSLIST
показывает множество простых запросов вставки или обновления для разных таблиц, но все они имеют статус
Ожидание блокировки на уровне таблицы
Примеры:
update user<br>
set user.hasnewmessages = NAME_CONST('in_flag',_binary'\0' COLLATE 'binary')
where user.id = NAME_CONST('in_uid',66381)
insert into exchanges_itempacks
set packid = NAME_CONST('in_packId',332149), type = NAME_CONST('in_type',1), itemid = NAME_CONST('in_itemId',23710872)
Запросы с самым длинным временем ожидают блокировки на уровне таблицы.Пожалуйста, помогите понять, почему MySQL пытается получить блокировку уровня и что может блокировать все эти таблицы.Во всех статьях о блокировке InnoDB говорится, что этот движок не использует блокировку таблиц, если вы не заставляете его это делать.
My my.cnf
имеет следующее:
innodb_flush_log_at_trx_commit = 0
innodb_support_xa = 0
innodb_locks_unsafe_for_binlog = 1
innodb_autoinc_lock_mode=2
Двоичный журнал отключен,У меня нет "LOCK TABLES" или других явных команд блокировки вообще.Транзакции: READ_UNCOMMITED
.
SHOW ENGINE INNODB STATUS
Вывод: http://avatar -studio.ru: 8080 / ph / imonout.txt