Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




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, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
15217



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |