2010-01-20 3 views

ответ

6

Это проблема Заблокирован замок, что в конечном итоге приводит к тайм-ауту на одном из замков. Вот несколько предложений:

  • Убедитесь, что правильные индексы, которые приводят к уровню строк замков не уровня таблицы замка. Это уменьшит конкуренцию.
  • Удостоверьтесь, что у вас есть указатели на внешний ключ ограничений. Чтобы проверить реляционные ограничения во время insert или update, некоторая база данных блокирует всю ссылочную таблицу, если такого индекса нет (не знаю, относится ли это к MySQL)
  • Если проблема все еще здесь, попробуйте сделать транзакцию быстрее/меньше. Опять же, это уменьшит конкуренцию в базе данных.
  • Увеличение таймаута, но сохранить значение приемлемым
0

Это происходит в системе с высоким уровнем трафика, где транзакции занимают много времени (т. Е. Таблицы заблокированы в течение длительного времени)? Если это так, вы можете посмотреть код транзакции, чтобы сделать их более короткими/более гранулированными/более эффективными.