Bug #56535 mysqld tries to load triggers on tables in performance_schema database
Submitted: 3 Sep 2010 12:12 Modified: 3 Sep 2010 16:39
Reporter: Shane Bester (Platinum Quality Contributor) Email Updates:
Status: Not a Bug Impact on me:
None 
Category:MySQL Server: Performance Schema Severity:S5 (Performance)
Version:5.6.0-m4 OS:Any
Assigned to: Marc ALFF CPU Architecture:Any

[3 Sep 2010 12:12] Shane Bester
Description:
mysqld tries to load triggers on tables in performance_schema database.
you cannot create triggers on these tables anyway.

How to repeat:
use performance_schema;
show table status;

use process monitor in windows to view the .TRG files being opened.
or use strace on linux

Suggested fix:
don't bother trying to open nonexistant files.
[3 Sep 2010 12:13] MySQL Verification Team
evidence

Attachment: bug56535_processmonitor_output.txt (text/plain), 2.26 KiB.

[3 Sep 2010 16:39] Marc ALFF
It is correct that the server code will attempt to find a trigger
for performance schema tables.

This is because no specific hard coded logic for the performance schema
was added in the trigger implementation.

Now, I do not understand why this qualifies as a "performance problem":
one the table definition, with no trigger, is loaded in the server,
this table definition will stay in the table definition cache and the
trigger file will not be re-opened ...

If too many file io happens on the .TRG files, it's because the table
definition cache is too small that table definitions got evicted,
which is a performance tuning problem that affects the server in general,
and every table in the application (not just the performance schema).

This works as designed.

Closing as not a bug.