#### 27.12.20.9 Socket Summary Tables

[]()[]()[]()[]()

 These socket summary tables aggregate timer and byte count information for socket operations:

* [`socket_summary_by_event_name`](performance-schema-socket-summary-tables.html): Aggregate timer and byte count statistics generated by the `wait/io/socket/*` instruments for all socket I/O operations, per socket instrument.

* [`socket_summary_by_instance`](performance-schema-socket-summary-tables.html): Aggregate timer and byte count statistics generated by the `wait/io/socket/*` instruments for all socket I/O operations, per socket instance. When a connection terminates, the row in [`socket_summary_by_instance`](performance-schema-socket-summary-tables.html) corresponding to it is deleted.

 The socket summary tables do not aggregate waits generated by `idle` events while sockets are waiting for the next request from the client. For `idle` event aggregations, use the wait-event summary tables; see [Section 27.12.20.1, “Wait Event Summary Tables”](performance-schema-wait-summary-tables.html).

 Each socket summary table has one or more grouping columns to indicate how the table aggregates events. Event names refer to names of event instruments in the [`setup_instruments`](performance-schema-setup-instruments-table.html) table:

* [`socket_summary_by_event_name`](performance-schema-socket-summary-tables.html) has an `EVENT_NAME` column. Each row summarizes events for a given event name.

* [`socket_summary_by_instance`](performance-schema-socket-summary-tables.html) has an `OBJECT_INSTANCE_BEGIN` column. Each row summarizes events for a given object.

 Each socket summary table has these summary columns containing aggregated values:

* `COUNT_STAR`, `SUM_TIMER_WAIT`, `MIN_TIMER_WAIT`, `AVG_TIMER_WAIT`, `MAX_TIMER_WAIT`

   These columns aggregate all operations.

* `COUNT_READ`, `SUM_TIMER_READ`, `MIN_TIMER_READ`, `AVG_TIMER_READ`, `MAX_TIMER_READ`, `SUM_NUMBER_OF_BYTES_READ`

   These columns aggregate all receive operations (`RECV`, `RECVFROM`, and `RECVMSG`).

* `COUNT_WRITE`, `SUM_TIMER_WRITE`, `MIN_TIMER_WRITE`, `AVG_TIMER_WRITE`, `MAX_TIMER_WRITE`, `SUM_NUMBER_OF_BYTES_WRITE`

   These columns aggregate all send operations (`SEND`, `SENDTO`, and `SENDMSG`).

* `COUNT_MISC`, `SUM_TIMER_MISC`, `MIN_TIMER_MISC`, `AVG_TIMER_MISC`, `MAX_TIMER_MISC`

   These columns aggregate all other socket operations, such as `CONNECT`, `LISTEN`, `ACCEPT`, `CLOSE`, and `SHUTDOWN`. There are no byte counts for these operations.

 The [`socket_summary_by_instance`](performance-schema-socket-summary-tables.html) table also has an `EVENT_NAME` column that indicates the class of the socket: `client_connection`, `server_tcpip_socket`, `server_unix_socket`. This column can be grouped on to isolate, for example, client activity from that of the server listening sockets.

 The socket summary tables have these indexes:

* [`socket_summary_by_event_name`](performance-schema-socket-summary-tables.html):

  * Primary key on (`EVENT_NAME`)

* [`socket_summary_by_instance`](performance-schema-socket-summary-tables.html):

  * Primary key on (`OBJECT_INSTANCE_BEGIN`)

  * Index on (`EVENT_NAME`)

[`TRUNCATE TABLE`](truncate-table.html) is permitted for socket summary tables. Except for [`events_statements_summary_by_digest`](performance-schema-statement-summary-tables.html), tt resets the summary columns to zero rather than removing rows.

