セッション接続属性
表SESSION_CONNECT_ATTRSは接続属性に関する情報を提供します。セッション属性は、接続を確立する際にクライアントから送信されるキーと値のペアです。
共通の属性:
SESSION_CONNECT_ATTRSテーブルの列は次のように表示できます。
USE performance_schema;
DESCRIBE session_connect_attrs;
+------------------+-----------------+------+------+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------+-----------------+------+------+---------+-------+
| PROCESSLIST_ID | bigint unsigned | NO | | NULL | |
| ATTR_NAME | varchar(32) | NO | | NULL | |
| ATTR_VALUE | varchar(1024) | YES | | NULL | |
| ORDINAL_POSITION | int | YES | | NULL | |
+------------------+-----------------+------+------+---------+-------+
SESSION_CONNECT_ATTRSテーブルに保存されているセッション属性の情報は、次のようにして表示できます。
USE performance_schema;
TABLE SESSION_CONNECT_ATTRS;
+----------------+-----------------+------------+------------------+
| PROCESSLIST_ID | ATTR_NAME | ATTR_VALUE | ORDINAL_POSITION |
+----------------+-----------------+------------+------------------+
| 2097154 | _client_name | libmysql | 0 |
| 2097154 | _client_version | 8.5.3 | 1 |
| 2097154 | _os | Linux | 2 |
| 2097154 | _pid | 1299203 | 3 |
| 2097154 | _platform | x86_64 | 4 |
| 2097154 | program_name | mysqlsh | 5 |
+----------------+-----------------+------------+------------------+
SESSION_CONNECT_ATTRSテーブル内のフィールドは次のように説明されます。
PROCESSLIST_ID: セッションのプロセスリスト ID。ATTR_NAME: 属性名。ATTR_VALUE: 属性値。ORDINAL_POSITION: 名前/値のペアの順序位置。
サイズ制限と切り捨て
TiDB は、performance_schema_session_connect_attrs_size グローバルシステム変数を使用して、セッションごとの接続属性の合計最大サイズを制御します。
- デフォルト値:
4096バイト - 範囲:
[-1, 65536] -1は制限が設定されていないことを意味し、TiDB はこれを最大65536バイトとして扱います。0は、TiDB がクライアントから提供されたセッション接続属性を保持しないことを意味し、実質的にセッション属性の記録を無効にします。
合計サイズがこの制限を超えると、TiDB は超過した属性を切り捨て、切り捨てられたバイト数を示すために _truncated を追加します。
受け入れられた接続属性は、スローログの Session_connect_attrs フィールドにも書き込まれ、INFORMATION_SCHEMA.SLOW_QUERY および INFORMATION_SCHEMA.CLUSTER_SLOW_QUERY からクエリできます。スローログに書き込まれるペイロードサイズを制御するには、performance_schema_session_connect_attrs_size を調整します。
TiDB は、ハンドシェイクパケット内の接続属性ペイロードに対して 1 MiB のハード制限も適用します。このハード制限を超えると、接続は拒否されます。