Performance Schema Wait Event Tables lesser accuracy for event timing. Rather than time for an individual row operation as in per-row reporting, timing for batch I/O includes time spent for operations such as join buffering, aggregation, and returning rows to the client. For batch I/O reporting to occur, these conditions must be true: The  events_waits_current  table has these indexes: TRUNCATE TABLE  is permitted for the  events_waits_current  table. It removes the rows. The  events_waits_history  table contains the  N  most recent wait events that have ended per thread. Wait events are not added to the table until they have ended. When the table contains the maximum number of rows for a given thread, the oldest thread row is discarded when a new row for that thread is added. When a thread ends, all its rows are discarded. The Performance Schema autosizes the value of  N  during server startup. To set the number of rows per thread explicitly, set the  performance_schema_events_waits_history_size  system variable at server startup. The  events_waits_history  table has the same columns and indexing as  events_waits_current . See Section 27.12.4.1, “The events_waits_current Table” . TRUNCATE TABLE  is permitted for the  events_waits_history  table. It removes the rows. For more information about the relationship between the three wait event tables, see Section 27.9, “Performance Schema Tables for Current and Historical Events” . For information about configuring whether to collect wait events, see Section 27.12.4, “Performance Schema Wait Event Tables” . The  events_waits_history_long  table contains  N  the most recent wait events that have ended globally, across all threads. Wait events are not added to the table until they have ended. When the table becomes full, the oldest row is discarded when a new row is added, regardless of which thread generated either row. The Performance Schema autosizes the value of  N  during server startup. To set the table size explicitly, set the  performance_schema_events_waits_history_long_size  system variable at server startup. 4963 27.12.4.3 The events_waits_history_long Table 27.12.4.2 The events_waits_history Table •Query execution accesses the innermost table of a query block (for a single-table query, that table counts as innermost) •Query execution does not request a single row from the table (so, for example,  eq_ref  access prevents use of batch reporting) •Query execution does not evaluate a subquery containing table access for the table • FLAGS Reserved for future use. •Primary key on ( THREAD_ID ,  EVENT_ID )