MySQL——发布低优先级更新

MySQL——发布低优先级更新

有没有办法在 mysql 中执行低优先级的更新?

我正在运行一个负载非常高的应用程序,其中可能会有成千上万的用户试图同时更新相同的数据记录。这主要是基于会话的统计信息,如果请求有等待时间,其中大部分信息可能会被忽略。我希望能够检查某个表/行是否被锁定,如果是,则不将更新查询传递给服务器。这可能吗?

答案1

您使用的是什么数据库引擎?MyISAM 还是 InnoDB?如果是 MyISAM,可以使用以下命令查看锁:

SHOW FULL PROCESSLIST;

来源:我如何显示 mysql 锁?

但是,我建议您采用不同的方法。不要设置单个争用点,只需使用 INSERT DELAYED 为每个数据点插入一个新行即可。然后在一天结束时,或者每当您需要数据时,您都可以批量处理所有内容。请注意,这仅适用于 MyISAM、MEMORY 和 ARCHIVE 引擎类型。

来源:dev.mysql.com/doc/refman/5.1/en/insert-delayed.html

我认为这个问题应该在 Stack Overflow 上提出。你在那里可能会得到更好的回答。

-杰弗里·李

相关内容