The stats_history database
This database contains historical metrics gathered by ProxySQL with respect to its internal functioning.
These metrics are used by the Web UI, and by the Firewall functionality.
MySQL Output
Admin> SHOW TABLES FROM stats_history;
+----------------------------+
| tables |
+----------------------------+
| history_mysql_query_digest |
| myhgm_connections |
| myhgm_connections_day |
| myhgm_connections_hour |
| mysql_connections |
| mysql_connections_day |
| mysql_connections_hour |
| mysql_query_cache |
| mysql_query_cache_day |
| mysql_query_cache_hour |
| system_cpu |
| system_cpu_day |
| system_cpu_hour |
| system_memory |
| system_memory_day |
| system_memory_hour |
+----------------------------+
16 rows in set (0.00 sec)
PostgreSQL Output
Admin> SHOW TABLES FROM stats_history;
tables
---------------------------------------
history_mysql_query_digest
history_mysql_query_events
history_mysql_status_variables
history_mysql_status_variables_lookup
history_pgsql_query_digest
history_pgsql_status_variables
history_pgsql_status_variables_lookup
history_stats_mysql_connection_pool
myhgm_connections
myhgm_connections_day
myhgm_connections_hour
mysql_connections
mysql_connections_day
mysql_connections_hour
mysql_query_cache
mysql_query_cache_day
mysql_query_cache_hour
system_cpu
system_cpu_day
system_cpu_hour
system_memory
system_memory_day
system_memory_hour
(23 rows)
This page doesn’t describe the tables related to statistics displayed by Web UI, as they are mostly for internal use only.
Table history_mysql_query_digest
The definition for table history_mysql_query_digest is listed below:
CREATE TABLE history_mysql_query_digest (
dump_time INT,
hostgroup INT,
schemaname VARCHAR NOT NULL,
username VARCHAR NOT NULL,
client_address VARCHAR NOT NULL,
digest VARCHAR NOT NULL,
digest_text VARCHAR NOT NULL,
count_star INTEGER NOT NULL,
first_seen INTEGER NOT NULL,
last_seen INTEGER NOT NULL,
sum_time INTEGER NOT NULL,
min_time INTEGER NOT NULL,
max_time INTEGER NOT NULL,
sum_rows_affected INTEGER NOT NULL,
sum_rows_sent INTEGER NOT NULL)
1 row in set (0.00 sec)
Table stats_history.history_mysql_query_digest is used to persist to disk metrics from table
stats.stats_mysql_query_digest.
Because stats.stats_mysql_query_digest is an in-memory only table, a restart of ProxySQL will wipe all its
content.
Table stats_history.history_mysql_query_digest solves this problem by persisting metrics to disk on-demand
or at regular intervals.
Either way, the content of table stats.mysql_query_digest is atomically dumped into
stats_history.history_mysql_query_digest, and table stats.mysql_query_digest is reset.
The two options are:
- on-demand: executing
SAVE MYSQL DIGEST TO DISKin Admin interface - automatically: if the admin variable
admin-stats_mysql_query_digest_to_diskis configured to a value other than 0, it represents at what regular intervals (in seconds) Admin will automatically perform the action