#### 27.12.3.4 rwlock\_实例表

[](<>)[](<>)

这个[`rwlock_实例`](performance-schema-rwlock-instances-table.html)表列出了所有[rwlock](glossary.html#glos_rw_lock)（读写锁）服务器执行时性能模式看到的实例。一`rwlock`是代码中使用的一种同步机制，用于强制线程在给定时间可以按照特定规则访问某些公共资源。该资源被称为受`rwlock`。访问可以是共享的（多个线程可以同时具有读锁）、独占的（在给定时间只有一个线程可以具有写锁）或共享独占的（一个线程可以具有写锁，同时允许其他线程进行不一致的读取）。共享独占访问也被称为`sxlock`并优化并发性，提高读写工作负载的可伸缩性。

根据请求锁的线程数量和请求锁的性质，可以在共享模式、独占模式、共享独占模式下授予访问权限，也可以完全不授予访问权限，等待其他线程先完成。

这个[`rwlock_实例`](performance-schema-rwlock-instances-table.html)表中有以下列：

-   `名称`

    与锁关联的仪器名称。

-   `对象\u实例\u开始`

    插入指令的锁在内存中的地址。

-   `通过线程ID写入锁定`

    当线程当前有`rwlock`锁定在独占（写入）模式，`通过线程ID写入锁定`是吗`线程ID`锁紧螺纹，否则`无效的`.

-   `按计数读取锁定`

    当线程当前有`rwlock`锁定在共享（读取）模式下，`按计数读取锁定`增加1。这只是一个计数器，因此不能直接使用它来查找哪个线程持有读锁，但它可以用来查看某个线程上是否存在读争用`rwlock`，并查看当前有多少读卡器处于活动状态。

    这个[`rwlock_实例`](performance-schema-rwlock-instances-table.html)表中有以下索引：

-   主键打开(`对象\u实例\u开始`)

-   索引(`名称`)

-   索引(`通过线程ID写入锁定`)

[`截断表`](truncate-table.html)是不允许的[`rwlock_实例`](performance-schema-rwlock-instances-table.html)桌子

通过对以下两个表执行查询，监控应用程序或DBA可能会检测到涉及锁的线程之间的一些瓶颈或死锁：

-   [`事件_等待_当前`](performance-schema-events-waits-current-table.html)，看看什么`rwlock`一个线程正在等待

-   [`rwlock_实例`](performance-schema-rwlock-instances-table.html)，以查看当前哪个线程拥有`rwlock`

    有一个局限性：即[`rwlock_实例`](performance-schema-rwlock-instances-table.html)只能用于标识持有写锁的线程，而不能标识持有读锁的线程。
