The setup_objects table controls
whether the Performance Schema monitors particular objects.
This table has a maximum size of 100 rows by default. To
change the table size, modify the
performance_schema_setup_objects_size
system variable at server startup.
The initial setup_objects
contents look like this:
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 |
+-------------+--------------------+-------------+---------+-------+
Modifications to the
setup_objects table affect object
monitoring immediately.
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.
The effect of the default object configuration is to
instrument all tables except those in the
mysql,
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.)
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 matching
setup_objects rows can have
different ENABLED and
TIMED values.
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.
For more information about the role of the
setup_objects table in event
filtering, see
Section 29.4.3, “Event Pre-Filtering”.
The setup_objects table has these
columns:
OBJECT_TYPEThe type of object to instrument. The value is one of
'EVENT'(Event Scheduler event),'FUNCTION'(stored function),'PROCEDURE'(stored procedure),'TABLE'(base table), or'TRIGGER'(trigger).TABLEfiltering affects table I/O events (wait/io/table/sql/handlerinstrument) and table lock events (wait/lock/table/sql/handlerinstrument).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. The value is
YESorNO. This column can be modified.TIMEDWhether events for the object are timed. This column can be modified.
The setup_objects table has these
indexes:
Index on (
OBJECT_TYPE,OBJECT_SCHEMA,OBJECT_NAME)
TRUNCATE TABLE is permitted for
the setup_objects table. It
removes the rows.