удаленная строка появляется снова - PullRequest
0 голосов
/ 25 июля 2009

У меня есть программа ac, работающая в Ubuntu, подключающаяся к mysql (5.0.51a-3ubuntu5.4-log).

Основная задача программы - обрабатывать записи из небольшой (<5000 строк) таблицы myisam. Если строка обработана успешно, она удаляется. Если нет, то повторяется на более поздний срок. После ряда неудачных попыток он удаляется. Удаление использует первичный ключ таблиц и является простым, то есть оно не указывает low_priority, quick или ignore. Программа использует отдельные соединения для чтения и записи. </p>

Иногда при следующем опросе возвращается удаленная запись для строк, которые необходимо обработать. Это происходит только со строками, которые были удалены из-за достижения предела повторных попыток. Что еще более удивительно, иногда следующий опрос ничего не возвращает, а опрос после этого возвращает удаленную строку.

Это связано с использованием разных соединений для чтения и записи? Я ожидал, что удаления будут немедленно соблюдаться всеми подключениями, так как я думал, что myisam использовал блокировки таблиц для удалений.

1 Ответ

1 голос
/ 25 июля 2009

Звучит подозрительно, как проблема "транзакции". Вы пробовали, что произойдет, если вы прямо подтвердите коммит сразу после удаления?

...