• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • rwlock_instances表

    rwlock_instances表列出了服务器执行时性能架构所看到的所有rwlock(读锁定)实例。An rwlock是一种代码中使用的同步机制,用于强制给定时间的线程可以按照某些规则访问某些公共资源。该资源被说成是“保护”由rwlock。访问权限可以是共享的(许多线程可以同时具有读锁),互斥的(排他(在给定时间只有一个线程可以具有写锁))或共享的互斥性(线程可以在允许不一致时具有写锁)由其他线程读取)。共享独占访问也称为“共享独占”,它可以sxlock优化并发性并提高读写工作负载的可伸缩性。

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

    rwlock_instances表包含以下列:

    • NAME

      与锁关联的仪器名称。

    • OBJECT_INSTANCE_BEGIN

      已检测锁的内存中的地址。

    • WRITE_LOCKED_BY_THREAD_ID

      当一个线程目前已形成rwlock以独占(写入)模式锁定,WRITE_LOCKED_BY_THREAD_IDTHREAD_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表。

    通过对以下两个表执行查询,监视应用程序或DBA可以检测到涉及锁的线程之间的某些瓶颈或死锁:

    • events_waits_current,以参见rwlock线程正在等待什么
    • rwlock_instances,以参见当前哪个其他线程拥有一个rwlock

    有一个限制:rwlock_instances只能用于标识持有写锁的线程,而不能标识持有读锁的线程。