我一直在尝试获取连接到特定数据库的用户数量(现在以及最近几周),但我现在只是让用户连接:
select a.processlist_db
, a.processlist_user
, count(*)
from performance_schema.threads a
join mysql.general_log b
on a.thread_id = b.thread_id
group
by a.processlist_db
, a.processlist_user;
我尝试使用 performance_schema 让用户使用 thread_id 作为锚点与 mysql 数据库中的一般日志连接,但它只能让我现在连接用户或根本没有用户。
select b.user_host
, a.current_schema
, b.event_time
, count(b.event_time)
from events_statements_current a
join mysql.general_log b
where a.thread_id = b.thread_id
group
by a.user_host
, a.current_scheam
, b.event_time;
我尝试寻找共享 thread_id 和 current_schema 列的表,我发现了这些:
events_statements_current
events_statements_history
events_statements_history_long
我注意到 peformance_schema 中的一些表要么没有返回任何值,比如 events_transaction_current/history,你如何激活它们?
为了让这些表存储数据,需要首先激活哪些参数?
我还注意到,当先前的查询返回某些内容时,有时我的 processlist_db 和 processlist_user 有空值,为什么会发生这种情况?这意味着什么?
谢谢