我有一个在ubuntu上运行的程序连接到mysql(5.0.51a-3ubuntu5.4-log)。
程序主要任务是处理来自小(<5000行)myisam表的记录。如果成功处理该行,则将其删除。如果不是,则在后一天重试。在多次失败尝试后,它将被删除。删除使用表主键并且是明确的,即它不指定low_priority,quick或ignore。 该程序使用单独的连接进行读写。
有时,下一轮询需要处理的行返回已删除的记录。这似乎只发生在由于达到重试限制而被删除的行。更令人惊讶的是,有时下一个轮询没有返回任何内容,之后的轮询返回已删除的行。
这与使用不同的读写连接有关吗?我希望所有连接都能立即尊重删除,因为我认为myisam使用表锁进行删除。
答案 0 :(得分:1)
听起来像是一个“交易”问题。您是否尝试过如果在删除后立即明确提交会发生什么?