The setup_objects Table
The setup_objects table controls whether particular objects are monitored. This table has a maximum size of 100 rows by default. The size may be changed by modifying the performance_schema_setup_objects_size system variable at server startup.
The initial setup_objects contents look like this:
mysql> SELECT * FROM setup_objects;
+-------------+--------------------+-------------+---------+-------+
| OBJECT_TYPE | OBJECT_SCHEMA | OBJECT_NAME | ENABLED | TIMED |
+-------------+--------------------+-------------+---------+-------+
| TABLE | mysql | % | NO | NO |
| TABLE | performance_schema | % | NO | NO |
| TABLE | information_schema | % | NO | NO |
| TABLE | % | % | YES | YES |
+-------------+--------------------+-------------+---------+-------+
For object types listed in setup_objects, the Performance Schema uses the table to how to monitor them. Object matching is based on the OBJECT_SCHEMA and OBJECT_NAME columns. Objects for which there is no match are not monitored.
When the Performance Schema checks for a match in setup_objects, it tries to find more specific matches first. For example, with a table db1.t1, it looks for a match for 'db1' and 't1', then for 'db1' and '%', then for '%' and '%'. The order in which matching occurs matters because different setup_objects rows can have different ENABLED and TIMED values.
The effect of the default object configuration is to instrument all tables except those in the MariaDB, INFORMATION_SCHEMA, and performance_schema databases. Tables in the INFORMATION_SCHEMA database are not instrumented regardless of the contents of setup_objects; the row for information_schema.% simply makes this default explicit.
The setup_objects table has these columns:
OBJECT_TYPEThe type of object to instrument. Currently, this is always
'TABLE'(base table).OBJECT_SCHEMAThe schema that contains the object. This should be a literal name, or
'%'to mean "any schema."OBJECT_NAMEThe name of the instrumented object. This should be a literal name, or
'%'to mean "any object."ENABLEDWhether events for the object are instrumented. This column can be modified.
This column was added in MariaDB 5.6.3. For earlier versions in which it is not present, the Performance Schema enables monitoring only for objects matched by some row in the table; monitoring is implicitly disabled for nonmatching objects.
TIMEDWhether events for the object are timed. This column can be modified.
Rows can be inserted into or deleted from setup_objects by users with the INSERT or DELETE privilege on the table. For existing rows, only the ENABLED and TIMED columns can be modified, by users with the UPDATE privilege on the table.
Modifications to the setup_objects table affect object monitoring immediately.
For more information about the role of the setup_objects table in event filtering, see , "Event Pre-Filtering".