Следующие запросы
SELECT * FROM (SELECT * FROM Users) WHERE Id = 1
А также
SELECT * FROM Users Where Id = 1
Эквивалентны. Но, согласно документации, в режиме Serializable все выборки выполняются в LOCK IN SHARED MODE. Означает ли это, что в первом примере вся таблица Users будет заблокирована в общем режиме?
1 ответ
Я думаю, вы неправильно понимаете концепцию блокировки режима общего доступа. Из документации MySQL:
SELECT ... LOCK IN SHARE MODE устанавливает блокировку общего режима для прочитанных строк. Блокировка общего режима позволяет другим сеансам читать строки, но не изменять их.
Таким образом, могут быть параллельные чтения. Только изменения будут отложены до тех пор, пока ваш запрос не будет выполнен.
Похожие вопросы
Новые вопросы
mysql
MySQL — это бесплатная система управления реляционными базами данных (RDBMS) с открытым исходным кодом, которая использует язык структурированных запросов (SQL). НЕ ИСПОЛЬЗУЙТЕ этот тег для других БД, таких как SQL Server, SQLite и т. д. Это разные БД, которые используют свои собственные диалекты SQL для управления данными.