要找到實例裏面某個表是否有訪問,確實是比較難搞。 mysql
經常使用方法就是 開tcpdump或tshark持續抓包過濾懷疑的表名。 sql
可是,若是咱們用的是Percona分支的MySQL,這件事就變得簡單多了。socket
Percona MySQL 下,咱們能夠打開userstat參數,經過查詢系通通計表來獲取用戶、客戶端和庫表訪問狀況,注意:該功能只在MySQL的 Percona 發行版有效,社區版不帶這個功能。tcp
(none) > status -------------- mysql Ver 14.14 Distrib 5.6.38-83.0, for Linux (x86_64) using 6.2 Connection id:1222143 Current database: Current user:root@localhost SSL:Not in use Current pager:stdout Using outfile:'/root/audit.log' Using delimiter:; Server version:5.6.38-83.0-log Percona Server (GPL), Release 83.0, Revision dc97471bd40 Protocol version:10 Connection:Localhost via UNIX socket Server characterset:utf8 Db characterset:utf8 Client characterset:utf8 Conn. characterset:utf8 UNIX socket:/tmp/mysql.sock Uptime:110 days 8 hours 34 min 25 sec Threads: 32 Questions: 1074250447 Slow queries: 1474 Opens: 136 Flush tables: 1 Open tables: 129 Queries per second avg: 112.665 -------------- (none) > use INFORMATION_SCHEMA (INFORMATION_SCHEMA) > show tables like '%_STATISTICS'; +---------------------------------------------+ | Tables_in_information_schema (%_STATISTICS) | +---------------------------------------------+ | CLIENT_STATISTICS | | INDEX_STATISTICS | | TABLE_STATISTICS | | THREAD_STATISTICS | | USER_STATISTICS | +---------------------------------------------+ 5 rows in set (0.00 sec) set global userstat=ON; select * from INFORMATION_SCHEMA.CLIENT_STATISTICS; select * from INFORMATION_SCHEMA.INDEX_STATISTICS; select * from INFORMATION_SCHEMA.TABLE_STATISTICS; select * from INFORMATION_SCHEMA.THREAD_STATISTICS; select * from INFORMATION_SCHEMA.USER_STATISTICS;
若是要清理統計信息,能夠使用下面的這幾個命令:ide
FLUSH CLIENT_STATISTICS ; FLUSH INDEX_STATISTICS ; FLUSH TABLE_STATISTICS ; FLUSH THREAD_STATISTICS ; FLUSH USER_STATISTICS ;