パフォーマンススキーマは、サーバーエラー (および警告) に関する統計情報を集約するためのサマリーテーブルを保持します。 サーバーエラーのリストは、Server Error Message Reference を参照してください。
エラー情報の収集は、デフォルトで有効になっている error
インストゥルメントによって制御されます。 タイミング情報は収集されません。
各エラーサマリーテーブルには、エラーを識別する 3 つのカラムがあります:
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
各エラーサマリーテーブルには、テーブルでのエラーの集計方法を示す 1 つ以上のグループ化カラムがあります:
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
の切捨てによって暗黙的に切り捨てられます。 詳細は、セクション27.12.8「パフォーマンススキーマ接続テーブル」を参照してください。