性能模式维护服务器错误的摘要表,以聚合统计信息(和警告)。有关服务器错误的列表,请参阅服务器错误消息参考。
错误信息的收集由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 节,“性能模式连接表”。