【问题标题】:Using mysql innodb as a queue?使用 mysql innodb 作为队列?
【发布时间】:2010-07-25 04:18:31
【问题描述】:

我有两个从 mysql 表中提取的工作。他们都想获得一行,对其进行一些工作并使用结果更新该行,但是我不希望他们选择同一行进行更新。使用 mysql/innodb 引擎在选择中锁定一行的最佳方法是什么,以便其他线程无法使用它但允许它们选择其他记录?这可能吗?

谢谢!

【问题讨论】:

    标签: mysql locking queue innodb


    【解决方案1】:

    您可以将“FOR UPDATE”修饰符添加到您的选择语句的末尾。即

    SELECT * FROM table WHERE pkey = N FOR UPDATE;

    .. 但我认为在使用 InnoDB 作为队列并以性能为目标时应该小心。队列是面向堆栈的,需要不同的工具来解决 InnoDB(和 MySQL)试图解决的问题。

    【讨论】:

      猜你喜欢
      • 2011-10-25
      • 1970-01-01
      • 1970-01-01
      • 2016-06-11
      • 1970-01-01
      • 1970-01-01
      • 2015-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多