Подтвердить что ты не робот

что такое дальномеры?

ну, в теме введения Isolation in wikipedia есть такие слова, ссылки здесь

......... Serializable Это самый высокий уровень изоляции. При реализации СУБД на основе блокировки параллельного управления сериализуемость требует, чтобы блокировки чтения и записи (полученные по выбранным данным) были выпущены в конце транзакции. Кроме того, блокировки диапазона должны быть получены, когда запрос SELECT использует предложение WHERE, в частности, чтобы избежать явления фантомного чтения (см. Ниже). При использовании контроля блокировки без блокировки не происходит блокировки; однако, если система обнаруживает столкновение записи между несколькими параллельными транзакциями, разрешается только одно из них. См. Изоляцию снимка для получения более подробной информации по этой теме.

но целая тема не объясняла "диапазонные блокировки", у google alse нет точного описания.

какие "диапазоны-блокировки", и которые отличаются "блокировкой чтения" и "блокировкой записи"?

благодарю!

4b9b3361

Ответ 1

Если вы используете диапазон в WHERE, база данных будет блокировать каждый возможный кортеж в этом диапазоне, а также следующий кортеж (до и после). Если в указанном направлении нет следующего кортежа, он полностью блокируется в этом направлении.

Таким образом, SELECT является надежным в транзакции.

Ответ 2

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

Затем вниз, если вы заблокируете целую таблицу. По крайней мере, другие таблицы не замедляются.

Самым узким является блокировка ряда. Вы можете безопасно обновлять эту строку, а не блокировать другие операции.

Блокировка диапазона находится между двумя последними. Случаи, в которых он используется, включают:

  1. Запрос влияет на диапазон значений.
  2. Неисследовательный индекс зависит от запроса (потому что может быть более одной строки, например, 23, поэтому 23 идентифицирует диапазон, а не строку).
  3. Вставка нового автоматически увеличиваемого ключа (блокировка между диапазоном max(curvalue) + indexincrement и ).