Spec-Zone.ru › MySQL 9.2

29.12.3.4 Таблица rwlock_instances

Таблица rwlock_instances перечисляет все экземпляры блокировок (чтение/запись), увиденные Performance Schema во время выполнения сервера. rwlock — это механизм синхронизации, используемый в коде для обеспечения того, что потоки в данный момент имеют доступ к некоторому общему ресурсу в соответствии с определенными правилами. Ресурс считается “защищенным” rwlock. Доступ может быть совместным (несколько потоков могут одновременно иметь блокировку на чтение), эксклюзивным (только один поток может иметь блокировку на запись в данный момент) или совместно-эксклюзивным (поток может иметь блокировку на запись, разрешая несовместимые чтения другими потоками). Совместно-эксклюзивный доступ также известен как sxlock и оптимизирует параллельность и улучшает масштабируемость для нагрузок чтение/запись.

В зависимости от того, сколько потоков запрашивают блокировку и от характера запрошенных блокировок, доступ может быть предоставлен в режиме совместного доступа, эксклюзивного доступа, совместно-эксклюзивного доступа или вообще не предоставлен, ожидая, пока другие потоки не завершат работу.

Таблица rwlock_instances содержит следующие столбцы:

  • NAME

    Название инструмента, связанного с блокировкой.

  • OBJECT_INSTANCE_BEGIN

    Адрес в памяти инструментированной блокировки.

  • WRITE_LOCKED_BY_THREAD_ID

    Если поток в данный момент имеет блокировку rwlock в эксклюзивном (запись) режиме, то WRITE_LOCKED_BY_THREAD_ID — это THREAD_ID потока, захватившего блокировку, в противном случае это NULL.

  • READ_LOCKED_BY_COUNT

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

Таблица rwlock_instances имеет следующие индексы:

  • Первичный ключ по (OBJECT_INSTANCE_BEGIN)

  • Индекс по (NAME)

  • Индекс по (WRITE_LOCKED_BY_THREAD_ID)

Операция TRUNCATE TABLE не разрешена для таблицы rwlock_instances.

Выполнение запросов к обеим следующим таблицам позволит приложению мониторинга или администратору базы данных определить узкие места или тупиковые ситуации между потоками, связанные с блокировками:

  • events_waits_current, чтобы увидеть, на что ожидает поток rwlock

  • rwlock_instances, чтобы увидеть, какой другой поток в настоящее время владеет rwlock

Существует ограничение: Таблица rwlock_instances может использоваться только для определения потока, владеющего блокировкой на запись, но не потоков, владеющих блокировками на чтение.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-9.2-en/performance-schema-rwlock-instances-table.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API