The performance_schema is a powerful tool for analyzing MySQL
performance and behavior. One aspect of the performance_schema is
that the view of the data is "right now", and very little
historical information is present. You can see that there are 10
threads connected right now, but what about five minutes
ago?
ps_history
ps_history is a set of stored routines and events
for periodically collecting the data in the performance_schema
into another schema called ps_history. The ps_history schema
contains a copy of each performance_schema view as a real table,
and timestamp and server_id columns have been added to each
table. Periodically (by default every 30 seconds) the
performance_schema data is written into the history tables.
ps_history comes as one script (setup.sql) which will create the
ps_history schema, the tables within it, and …
The performance_schema is a powerful tool for analyzing MySQL
performance and behavior. One aspect of the performance_schema is
that the view of the data is "right now", and very little
historical information is present. You can see that there are 10
threads connected right now, but what about five minutes
ago?
ps_history
ps_history is a set of stored routines and events
for periodically collecting the data in the performance_schema
into another schema called ps_history. The ps_history schema
contains a copy of each performance_schema view as a real table,
and timestamp and server_id columns have been added to each
table. Periodically (by default every 30 seconds) the
performance_schema data is written into the history tables.
ps_history comes as one script (setup.sql) which will create the
ps_history schema, the tables within it, and …
A few days ago I wrote about MySQL performance implications of InnoDB isolation modes and I touched briefly upon the bizarre performance regression I found with InnoDB handling a large amount of versions for a single row. Today I wanted to look a bit deeper into the problem, which I also filed as a bug.
First I validated in which conditions the problem happens. It seems to happen only in REPEATABLE-READ isolation mode and only in case there is some hot rows which get many row versions during a benchmark run. For example the problem does NOT happen if I run sysbench with “uniform” distribution.
In terms of concurrent selects it also seems to require some very special conditions – you need to have the connection to let some …
[Read more]Hosting a shared MySQL instance for your internal or external clients (“multi-tenant”) was always a challenge. Multi-tenants approach or a “schema-per-customer” approach is pretty common nowadays to host multiple clients on the same MySQL sever. One of issues of this approach, however, is the lack of visibility: it is hard to tell how many resources (queries, disk, cpu, etc) each user will use.
Percona Server contains userstats Google patch, which will allow you to get the resource utilization per user. The new MySQL 5.6 performance_schema has even more instrumentation which can give you a better visibility on per-user or per-schema/per-database level. And if you are running MySQL 5.6.6 or …
[Read more]