Mysql 为什么performance\u schema.events\u statements\u current的字段SQL\u TEXT经常为空?

Mysql 为什么performance\u schema.events\u statements\u current的字段SQL\u TEXT经常为空?,mysql,percona,Mysql,Percona,我们使用percona server 5.7,并尝试通过以下sql获取带有字段trx_查询的sql文本,但我经常发现该字段为空,原因是什么,如何避免获取空sql文本 SELECT b.id AS processlist_id, trx_id, user, host, a.trx_state , unix_timestamp(now()) - unix_timestamp(trx_started) AS trx_time , db, trx_rows_modified , S

我们使用percona server 5.7,并尝试通过以下sql获取带有字段trx_查询的sql文本,但我经常发现该字段为空,原因是什么,如何避免获取空sql文本

SELECT b.id AS processlist_id, trx_id, user, host, a.trx_state
    , unix_timestamp(now()) - unix_timestamp(trx_started) AS trx_time
    , db, trx_rows_modified 
  , SUBSTRING(CASE 
                  WHEN trx_query IS NULL  THEN c.SQL_TEXT
                    WHEN trx_query IN ('commit')  THEN c.SQL_TEXT
                  ELSE trx_query
                END, 1, 10240) AS trx_query                
FROM information_schema.innodb_trx a
    INNER JOIN information_schema.processlist b ON a.trx_mysql_thread_id = b.id
  INNER JOIN performance_schema.threads  t  ON t.PROCESSLIST_ID = a.trx_mysql_thread_id
    INNER JOIN  performance_schema.events_statements_current c on  t.THREAD_ID=c.THREAD_ID 
WHERE trx_started > '0000-00-00 00:00:00'
    AND unix_timestamp(now()) - unix_timestamp(trx_started) >= 10
    AND trx_tables_locked > 0
ORDER BY trx_time DESC
LIMIT 0, 30;