Только я вот не совсем уверен
For locking reads (SELECT with FOR UPDATE or LOCK IN SHARE MODE), UPDATE, and DELETE statements, locking depends on whether the statement uses a unique index with a unique search condition, or a range-type search condition. For a unique index with a unique search condition, InnoDB locks only the index record found, not the gap before it. For other search conditions, InnoDB locks the index range scanned, using gap locks or next-key (gap plus index-record) locks to block insertions by other sessions into the gaps covered by the range.
Что бы не страдать гемороем (особенно на собеседованиях), я бы посоветовал SERIALIZABLE, а вот уже если этого будет мало, вот тогда начинать тыркать все остальное типа REPEATABLE READ, но уже за деньги. Мы ведь до сих пор так не знаем, почему же нельзя использовать индексы.
-~{}~ 27.09.09 22:43:
PS. повторяю - я в чудеса не верю. если у тебя не будет индекса, то каким хером мускуль будет проверять диапазон? правильно, перебором. А если индекс, то почему нельзя использовать unique constraint? Не надо высасывать задачи из пальца. И вы с удивлением заметите, что вокруг вас полно умных и продвинутых ребят.