







|
MySQL.RU - Webboard
Вернуться
Блокировка следующего ключа в InnoDB (Tiger) 28/05/2004 - 23:15:11
Re: Блокировка следующего ключа в InnoDB (Marat_L) 31/05/2004 - 08:25:54
Re: Блокировка следующего ключа в InnoDB (Tiger) 31/05/2004 - 16:24:31
Re: Блокировка следующего ключа в InnoDB (Marat_L) 31/05/2004 - 17:07:09
Re: Блокировка следующего ключа в InnoDB (Tiger) 01/06/2004 - 06:10:23
Re: Блокировка следующего ключа в InnoDB (Tiger) 01/06/2004 - 06:12:10
Re: Блокировка следующего ключа в InnoDB (Marat_L) 01/06/2004 - 08:52:35
From: Tiger - 28/05/2004 - 23:15:11
Subject:Блокировка следующего ключа в InnoDB
-----------------
Добрый день, господа! Пожалуйста, осветите для меня одну проблему.
Есть такой пункт мануала "Блокировка следующего ключа: устранение проблемы с фантомом" (http://dev.mysql.com/doc/mysql/ru/InnoDB_Next-key_locking.html).
В нём в частности сказано:
SELECT * FROM CHILD WHERE ID > 100 FOR UPDATE;
Когда InnoDB сканирует индекс, то возможна также блокировка интервалов после последних записей в индексе. Именно это иллюстрируется в предыдущем примере: блокировка, установленная InnoDB, предотвратит вставку в таблицу, если ID будет больше 100.
Для меня остались неясными несколько моментов:
а) Обязательно ли должен быть индекс по столбцу ID? Если бы на месте ID стояло неиндексированное поле, то никакой блокировки бы не было?
б) Чтобы избежать проблемы с фантомом, нужно использовать только SELECT ... FOR UPDATE или можно также SELECT ... LOCK IN SHARE MODE?
И ещё вопрос по тому же разделу.
В мануале написано, что можно использовать блокировку следующего ключа для обеспечения уникальности значений в своей программе. Но я так и не понял до конца как. Объясните, пожалуйста.
Спасибо.
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
15217
|
|