setup_objects
表格控制 Performance Schema 是否監控特定物件。此表格預設最大大小為 100 列。若要變更表格大小,請在伺服器啟動時修改 performance_schema_setup_objects_size
系統變數。
初始的 setup_objects
內容如下所示
mysql> SELECT * FROM performance_schema.setup_objects;
+-------------+--------------------+-------------+---------+-------+
| OBJECT_TYPE | OBJECT_SCHEMA | OBJECT_NAME | ENABLED | TIMED |
+-------------+--------------------+-------------+---------+-------+
| EVENT | mysql | % | NO | NO |
| EVENT | performance_schema | % | NO | NO |
| EVENT | information_schema | % | NO | NO |
| EVENT | % | % | YES | YES |
| FUNCTION | mysql | % | NO | NO |
| FUNCTION | performance_schema | % | NO | NO |
| FUNCTION | information_schema | % | NO | NO |
| FUNCTION | % | % | YES | YES |
| PROCEDURE | mysql | % | NO | NO |
| PROCEDURE | performance_schema | % | NO | NO |
| PROCEDURE | information_schema | % | NO | NO |
| PROCEDURE | % | % | YES | YES |
| TABLE | mysql | % | NO | NO |
| TABLE | performance_schema | % | NO | NO |
| TABLE | information_schema | % | NO | NO |
| TABLE | % | % | YES | YES |
| TRIGGER | mysql | % | NO | NO |
| TRIGGER | performance_schema | % | NO | NO |
| TRIGGER | information_schema | % | NO | NO |
| TRIGGER | % | % | YES | YES |
+-------------+--------------------+-------------+---------+-------+
對 setup_objects
表格的修改會立即影響物件監控。
對於 setup_objects
中列出的物件類型,Performance Schema 使用該表格來決定如何監控它們。物件比對是根據 OBJECT_SCHEMA
和 OBJECT_NAME
欄位。沒有比對的物件不會被監控。
預設物件設定的效果是監控除了 mysql
、INFORMATION_SCHEMA
和 performance_schema
資料庫中的所有表格。(INFORMATION_SCHEMA
資料庫中的表格不受 setup_objects
內容的影響,不會被監控;information_schema.%
的列只是明確地說明此預設值。)
當 Performance Schema 在 setup_objects
中檢查是否有比對時,它會先嘗試尋找更精確的比對。例如,對於表格 db1.t1
,它會先尋找 'db1'
和 't1'
的比對,然後尋找 'db1'
和 '%'
的比對,最後尋找 '%'
和 '%'
的比對。比對發生的順序很重要,因為不同的比對 setup_objects
列可能具有不同的 ENABLED
和 TIMED
值。
具有 INSERT
或 DELETE
權限的使用者,可以對 setup_objects
表格進行資料列的插入或刪除。對於現有的資料列,只有 ENABLED
和 TIMED
欄位可以被修改,而修改者必須具有該表格的 UPDATE
權限。
若要瞭解 setup_objects
表格在事件篩選中的作用,請參閱 第 29.4.3 節「事件預先篩選」。
setup_objects
表格包含以下欄位:
OBJECT_TYPE
要監測的物件類型。值可以是
'EVENT'
(事件排程器事件)、'FUNCTION'
(預存函數)、'PROCEDURE'
(預存程序)、'TABLE'
(基本表格) 或'TRIGGER'
(觸發器)。TABLE
篩選會影響表格 I/O 事件(wait/io/table/sql/handler
instrument)和表格鎖定事件(wait/lock/table/sql/handler
instrument)。OBJECT_SCHEMA
包含該物件的 schema。這應該是一個字面名稱,或是
'%'
表示「任何 schema」。OBJECT_NAME
被監測物件的名稱。這應該是一個字面名稱,或是
'%'
表示「任何物件」。ENABLED
是否監測該物件的事件。值為
YES
或NO
。此欄位可以被修改。TIMED
是否對該物件的事件進行計時。此欄位可以被修改。
setup_objects
表格包含以下索引:
索引位於 (
OBJECT_TYPE
,OBJECT_SCHEMA
,OBJECT_NAME
)
允許對 setup_objects
表格使用 TRUNCATE TABLE
。它會移除所有的資料列。