性能模式维护错误摘要表以汇总有关服务器错误(和警告)的统计信息。有关服务器错误的列表,请参见 服务器错误信息参考.
错误信息的收集由 error
仪器控制,默认情况下该仪器已启用。不会收集计时信息。
每个错误摘要表都有三个列来标识错误
ERROR_NUMBER
是数字错误值。该值是唯一的。ERROR_NAME
是与ERROR_NUMBER
值相对应的符号错误名称。该值是唯一的。SQLSTATE
是与ERROR_NUMBER
值相对应的 SQLSTATE 值。该值不一定唯一。
例如,如果 ERROR_NUMBER
为 1050,ERROR_NAME
为 ER_TABLE_EXISTS_ERROR
,而 SQLSTATE
为 42S01
。
示例错误事件摘要信息
mysql> SELECT *
FROM performance_schema.events_errors_summary_global_by_error
WHERE SUM_ERROR_RAISED <> 0\G
*************************** 1. row ***************************
ERROR_NUMBER: 1064
ERROR_NAME: ER_PARSE_ERROR
SQL_STATE: 42000
SUM_ERROR_RAISED: 1
SUM_ERROR_HANDLED: 0
FIRST_SEEN: 2016-06-28 07:34:02
LAST_SEEN: 2016-06-28 07:34:02
*************************** 2. row ***************************
ERROR_NUMBER: 1146
ERROR_NAME: ER_NO_SUCH_TABLE
SQL_STATE: 42S02
SUM_ERROR_RAISED: 2
SUM_ERROR_HANDLED: 0
FIRST_SEEN: 2016-06-28 07:34:05
LAST_SEEN: 2016-06-28 07:36:18
*************************** 3. row ***************************
ERROR_NUMBER: 1317
ERROR_NAME: ER_QUERY_INTERRUPTED
SQL_STATE: 70100
SUM_ERROR_RAISED: 1
SUM_ERROR_HANDLED: 0
FIRST_SEEN: 2016-06-28 11:01:49
LAST_SEEN: 2016-06-28 11:01:49
每个错误摘要表都有一个或多个分组列,以指示表如何汇总错误
events_errors_summary_by_account_by_error
有USER
、HOST
和ERROR_NUMBER
列。每行汇总给定帐户(用户和主机组合)和错误的事件。events_errors_summary_by_host_by_error
有HOST
和ERROR_NUMBER
列。每行汇总给定主机和错误的事件。events_errors_summary_by_thread_by_error
有THREAD_ID
和ERROR_NUMBER
列。每行汇总给定线程和错误的事件。events_errors_summary_by_user_by_error
有USER
和ERROR_NUMBER
列。每行汇总给定用户和错误的事件。events_errors_summary_global_by_error
有一个ERROR_NUMBER
列。每行汇总给定错误的事件。
每个错误摘要表都有这些包含汇总值的汇总列
SUM_ERROR_RAISED
此列汇总错误发生的次数。
SUM_ERROR_HANDLED
此列汇总错误由 SQL 异常处理程序处理的次数。
FIRST_SEEN
,LAST_SEEN
指示错误首次出现和最近一次出现的日期时间戳。
每个错误摘要表中的一行 NULL
用于汇总所有超出已检测错误范围的错误的统计信息。例如,如果 MySQL 服务器错误位于 M
到 N
之间,而错误产生的数字是 Q
,不在该范围内,则错误将汇总在 NULL
行中。 NULL
行是 ERROR_NUMBER=0
、ERROR_NAME=NULL
和 SQLSTATE=NULL
的行。
错误摘要表具有以下索引
events_errors_summary_by_account_by_error
:主键在 (
USER
,HOST
,ERROR_NUMBER
) 上
events_errors_summary_by_host_by_error
:主键在 (
HOST
,ERROR_NUMBER
) 上
events_errors_summary_by_thread_by_error
:主键在 (
THREAD_ID
,ERROR_NUMBER
) 上
events_errors_summary_by_user_by_error
:主键在 (
USER
,ERROR_NUMBER
) 上
events_errors_summary_global_by_error
:主键在 (
ERROR_NUMBER
)
TRUNCATE TABLE
允许用于错误汇总表。它有以下效果
对于未按帐户、主机或用户聚合的汇总表,截断将汇总列重置为零或
NULL
,而不是删除行。对于按帐户、主机或用户聚合的汇总表,截断将删除没有连接的帐户、主机或用户的行,并将剩余行的汇总列重置为零或
NULL
。
此外,每个按帐户、主机、用户或线程聚合的错误汇总表都会隐式地通过截断其依赖的连接表或截断 events_errors_summary_global_by_error
来进行截断。有关详细信息,请参见 第 29.12.8 节,“Performance Schema 连接表”。