在单线程时在MySQL中编写的Sidekiq worker性能更好

时间:2019-05-02 14:02:11

标签: mysql sidekiq database-locking

我正在使用sidekiq并发执行某种服务,该服务在mysql数据库中的table1上执行INSERT。我注意到平均而言,当我实际上有一个相关线程正在运行一个线程时,我的工作人员的执行速度会更快(我正在使用sidekiq-limit-fetch来限制每个队列的线程数)。 我读到mysql实际上正在运行LOCKS,当执行INSERT时,它实际上会锁定表或行。我的猜测是,这就是为什么工人在单线程时实际上表现更好的原因。 如何确定这是实际问题?我该怎么做才能解决此问题?有没有一种方法可以不为这些INSERT操作锁定行或表。

0 个答案:

没有答案