Рабочий Sidekiq, пишущий в mysql, работает лучше, когда однопоточный - PullRequest
0 голосов
/ 02 мая 2019

Я использую sidekiq для одновременного выполнения какой-либо службы, эта служба выполняет INSERT для table1 в базе данных mysql.Я заметил, что в среднем мой работник работает намного быстрее, когда у меня фактически работает один отдельный поток для связанной очереди (я использую sidekiq-limit-fetch, который позволяет ограничить количество потоков в очереди).Я прочитал, что mysql фактически выполняет LOCKS, который фактически блокирует таблицу или строку при выполнении INSERT.Я предполагаю, что именно по этой причине рабочий действительно лучше работает, когда он однопоточный.Как я могу быть уверен, что это актуальная проблема?Что я могу сделать, чтобы это исправить?Есть ли способ не блокировать строку или таблицу для этих операций INSERT.

...