29.12.20.11 错误总结表
性能模式维护了用于聚合关于服务器错误(和警告)的统计信息的摘要表。要查看服务器错误列表,请参阅服务器错误消息参考。
错误信息收集由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 Server错误范围从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 节,“性能_schema 连接表格”。