当cron更新数据库中的表时,选择慢查询

时间:2018-04-10 13:13:38

标签: php mysql wordpress woocommerce

我对基于woocommerce的商店有疑问。商店在后台(Cron)每小时更新一次股票和价格(每分钟约500件产品),在此更新过程中,选择查询速度变慢(TTFB从300毫秒增加到1900毫秒)。

我在专用服务器上使用带有InnoDB引擎的MySQL(4核xeon + 16GB ram)。

我的问题是,如何在更新期间提高选择查询速度?

也许我应该为每个产品使用一个大的更新查询而不是大量的单个更新查询?或者在这种情况下还有其他解决方案来调整mysql服务器?

请求帮助, 马辛

1 个答案:

答案 0 :(得分:0)

如果您的表大小足以在进行更新时阻塞MySql,则会出现这种情况。在MySql中更新大量记录时,将重新索引更新的元组。
通过 InnoDb 获取行级锁,但是如果select需要使用任何正在重建过程中的索引。这可能会造成一些麻烦。
如果您的查询允许,您可以做的就是单行选择SELECT。并且需要大量更新而不是持续更新。

左键启用 SLOW_QUERY_LOGGING ,并观察您的慢查询是因为没有使用锁等待或索引。这将帮助您缩小问题范围