MySQL – 发布低优先级更新

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

我正在运行一个非常高负载的应用程序,可能很容易成千上万的用户试图并发地更新相同的数据logging。 这主要是基于会话的统计信息,如果有与请求相关的等待时间,其中大部分可以忽略。 我想能够检查某些表/行是否被locking,如果是这样,只是不传递更新查询到服务器。 那可能吗?

你使用的是什么数据库引擎? MyISAM或InnoDB? 如果是MyISAM,则可以使用以下命令查看locking:

SHOW FULL PROCESSLIST; 

来源: 如何显示MySQL锁?

不过,我build议你采取不同的方法。 使用INSERT DELAYED插入每个数据点的新行,而不是单点争用。 然后在一天结束的时候,或者当您需要数据时,您可以批量处理所有内容。 请注意,这只适用于MyISAM,MEMORY和ARCHIVE引擎types。

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

我认为这个问题属于堆栈溢出。 你可能会得到更好的回应。

– 杰弗里·李