文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


29.12.3.4 rwlock_instances 表格

rwlock_instances 表格列出 Performance Schema 在伺服器執行時所見的所有 rwlock(讀寫鎖定)執行個體。 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 表格。

透過對以下兩個表格執行查詢,監控應用程式或 DBA 可以偵測到涉及鎖定的執行緒之間的一些瓶頸或死鎖

有一個限制:rwlock_instances 只能用於識別持有寫入鎖定的執行緒,而不能識別持有讀取鎖定的執行緒。