Исправление Table_locks_waited высоко в MySQL - PullRequest
3 голосов
/ 20 октября 2011

Когда я просматриваю информацию о моей базе данных, я вижу следующее.Таблица_locks_waited высокая.Как мне решить эту проблему?

enter image description here

1 Ответ

4 голосов
/ 20 октября 2011

Сначала вы должны запустить:

 show status like '%\_locks\_%';

Это покажет вам соотношение запросов, которые ожидают, к тем, которые могут немедленно получить блокировки. Вероятно, у вас более высокий набор записей для чтения, что приводит к тому, что mysql приходится ждать чаще, чем оптимально, но общую производительность нельзя проанализировать с помощью одной статистики.

Моим первым предложением было бы изменить ваши таблицы так, чтобы вы использовали движок Innodb для таблиц, которые несут основную нагрузку от транзакции. Innodb имеет блокировку строк, а не блокировку таблиц, а также кластеризованные индексы и кэширование данных запросов, которые, как правило, повышают производительность во многих случаях.

...