0

我一直在尝试获取连接到特定数据库的用户数量(现在以及最近几周),但我现在只是让用户连接:

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 有空值,为什么会发生这种情况?这意味着什么?

谢谢

4

0 回答 0