我在连接到 mysql (5.0.51a-3ubuntu5.4-log) 的 ubuntu 上运行 ac 程序。
该程序的主要任务是处理来自小型(<5000 行)myisam 表的记录。如果成功处理该行,则将其删除。如果不是,则在稍后的日期重试。在多次尝试失败后,它被删除。删除使用表的主键并且很简单,即它没有指定低优先级、快速或忽略。该程序使用单独的连接进行读取和写入。
有时,下一次轮询会为需要处理的行返回一条已删除的记录。这似乎只发生在由于达到重试限制而被删除的行上。更令人惊讶的是,有时下一个轮询没有返回任何内容,之后的轮询返回已删除的行。
这是否与使用不同的连接进行读取和写入有关?我希望所有连接都立即尊重删除,因为我认为 myisam 使用表锁进行删除。