MySQL:GET_LOCK限制和问题

时间:2011-09-17 15:19:05

标签: mysql locking

我需要一个数据库级同步。为此,我使用GET_LOCK('prefix.some_id',0)。 在某些时刻,GET_LOCK在不同主机上的不同脚本中为相同的密钥返回1。可能是什么问题呢?我需要很多这些锁,大约5-7k。

有什么想法吗?

3 个答案:

答案 0 :(得分:4)

答案 1 :(得分:2)

根据documentation,您无法通过GET_LOCK()为每个连接保留多个锁定(强调添加):

  

如果您使用GET_LOCK()获得了锁,则在执行RELEASE_LOCK(),执行新的GET_LOCK()时释放,或者您的连接终止(正常或异常)

正如丹尼尔所说,这个功能有feature request,但它是在2003年提交的,没有任何活动。

根据您的使用情况,您可以使用MySQL的表或行级锁定来实现您的目标。

答案 2 :(得分:1)