Documentation Home
MySQL 9.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 41.2Mb
PDF (A4) - 41.3Mb
Man Pages (TGZ) - 262.8Kb
Man Pages (Zip) - 368.8Kb
Info (Gzip) - 4.1Mb
Info (Zip) - 4.1Mb


29.4.5 Pre-Filtering by Object

Thesetup_objects table controls whether the Performance Schema monitors particular table and stored program objects. The initialsetup_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 thesetup_objects table affect object monitoring immediately.

TheOBJECT_TYPE column indicates the type of object to which a row applies.TABLE filtering affects table I/O events (wait/io/table/sql/handler instrument) and table lock events (wait/lock/table/sql/handler instrument).

TheOBJECT_SCHEMA andOBJECT_NAME columns should contain a literal schema or object name, or'%' to match any name.

TheENABLED column indicates whether matching objects are monitored, andTIMED indicates whether to collect timing information. Setting theTIMED column affects Performance Schema table contents as described inSection 29.4.1, “Performance Schema Event Timing”.

The effect of the default object configuration is to instrument all objects except those in themysql,INFORMATION_SCHEMA, andperformance_schema databases. (Tables in theINFORMATION_SCHEMA database are not instrumented regardless of the contents ofsetup_objects; the row forinformation_schema.% simply makes this default explicit.)

When the Performance Schema checks for a match insetup_objects, it tries to find more specific matches first. For rows that match a givenOBJECT_TYPE, the Performance Schema checks rows in this order:

  • Rows withOBJECT_SCHEMA='literal' andOBJECT_NAME='literal'.

  • Rows withOBJECT_SCHEMA='literal' andOBJECT_NAME='%'.

  • Rows withOBJECT_SCHEMA='%' andOBJECT_NAME='%'.

For example, with a tabledb1.t1, the Performance Schema looks inTABLE rows for a match for'db1' and't1', then for'db1' and'%', then for'%' and'%'. The order in which matching occurs matters because different matchingsetup_objects rows can have differentENABLED andTIMED values.

For table-related events, the Performance Schema combines the contents ofsetup_objects withsetup_instruments to determine whether to enable instruments and whether to time enabled instruments:

  • For tables that match a row insetup_objects, table instruments produce events only ifENABLED isYES in bothsetup_instruments andsetup_objects.

  • TheTIMED values in the two tables are combined, so that timing information is collected only when both values areYES.

For stored program objects, the Performance Schema takes theENABLED andTIMED columns directly from thesetup_objects row. There is no combining of values withsetup_instruments.

Suppose thatsetup_objects contains the followingTABLE rows that apply todb1,db2, anddb3:

+-------------+---------------+-------------+---------+-------+| OBJECT_TYPE | OBJECT_SCHEMA | OBJECT_NAME | ENABLED | TIMED |+-------------+---------------+-------------+---------+-------+| TABLE       | db1           | t1          | YES     | YES   || TABLE       | db1           | t2          | NO      | NO    || TABLE       | db2           | %           | YES     | YES   || TABLE       | db3           | %           | NO      | NO    || TABLE       | %             | %           | YES     | YES   |+-------------+---------------+-------------+---------+-------+

If an object-related instrument insetup_instruments has anENABLED value ofNO, events for the object are not monitored. If theENABLED value isYES, event monitoring occurs according to theENABLED value in the relevantsetup_objects row:

  • db1.t1 events are monitored

  • db1.t2 events are not monitored

  • db2.t3 events are monitored

  • db3.t4 events are not monitored

  • db4.t5 events are monitored

Similar logic applies for combining theTIMED columns from thesetup_instruments andsetup_objects tables to determine whether to collect event timing information.

If a persistent table and a temporary table have the same name, matching againstsetup_objects rows occurs the same way for both. It is not possible to enable monitoring for one table but not the other. However, each table is instrumented separately.