UPDATE performance_schema.SETUP_INSTRUMENTS SET enabled = 'YES', timed = 'YES'; DROP TABLE IF EXISTS t1; CREATE TABLE t1 (id INT PRIMARY KEY, b CHAR(100) DEFAULT 'initial value') ENGINE=MyISAM; INSERT INTO t1 (id) VALUES (1), (2), (3), (4), (5), (6), (7), (8); SELECT OPERATION, SUM(NUMBER_OF_BYTES) AS TOTAL FROM performance_schema.EVENTS_WAITS_HISTORY_LONG GROUP BY OPERATION HAVING TOTAL IS NOT NULL ORDER BY OPERATION LIMIT 1; OPERATION TOTAL chsize [NUM_BYTES] SELECT EVENT_ID FROM performance_schema.EVENTS_WAITS_CURRENT WHERE THREAD_ID IN (SELECT THREAD_ID FROM performance_schema.PROCESSLIST) AND EVENT_NAME IN (SELECT NAME FROM performance_schema.SETUP_INSTRUMENTS WHERE NAME LIKE "wait/synch/%") LIMIT 1; EVENT_ID [EVENT_ID] SELECT DISTINCT EVENT_ID FROM performance_schema.EVENTS_WAITS_CURRENT JOIN performance_schema.EVENTS_WAITS_HISTORY USING (EVENT_ID) JOIN performance_schema.EVENTS_WAITS_HISTORY_LONG USING (EVENT_ID) ORDER BY EVENT_ID LIMIT 1; EVENT_ID [EVENT_ID] SELECT t1.THREAD_ID, t2.EVENT_ID, t3.EVENT_NAME, t4.TIMER_WAIT FROM performance_schema.EVENTS_WAITS_HISTORY t1 JOIN performance_schema.EVENTS_WAITS_HISTORY t2 USING (EVENT_ID) JOIN performance_schema.EVENTS_WAITS_HISTORY t3 ON (t2.THREAD_ID = t3.THREAD_ID) JOIN performance_schema.EVENTS_WAITS_HISTORY t4 ON (t3.EVENT_NAME = t4.EVENT_NAME) ORDER BY t1.EVENT_ID, t2.EVENT_ID LIMIT 5; THREAD_ID EVENT_ID EVENT_NAME TIMER_WAIT [THREAD_ID] [EVENT_ID] [EVENT_NAME] [TIMER_WAIT] [THREAD_ID] [EVENT_ID] [EVENT_NAME] [TIMER_WAIT] [THREAD_ID] [EVENT_ID] [EVENT_NAME] [TIMER_WAIT] [THREAD_ID] [EVENT_ID] [EVENT_NAME] [TIMER_WAIT] [THREAD_ID] [EVENT_ID] [EVENT_NAME] [TIMER_WAIT] SELECT THREAD_ID, EVENT_ID FROM ( SELECT THREAD_ID, EVENT_ID FROM performance_schema.EVENTS_WAITS_CURRENT UNION SELECT THREAD_ID, EVENT_ID FROM performance_schema.EVENTS_WAITS_HISTORY UNION SELECT THREAD_ID, EVENT_ID FROM performance_schema.EVENTS_WAITS_HISTORY_LONG ) t1 ORDER BY THREAD_ID, EVENT_ID LIMIT 5; THREAD_ID EVENT_ID [THREAD_ID] [EVENT_ID] [THREAD_ID] [EVENT_ID] [THREAD_ID] [EVENT_ID] [THREAD_ID] [EVENT_ID] [THREAD_ID] [EVENT_ID] CREATE EVENT t_ps_event ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 SECOND DO SELECT DISTINCT EVENT_ID FROM performance_schema.EVENTS_WAITS_CURRENT JOIN performance_schema.EVENTS_WAITS_HISTORY USING (EVENT_ID) ORDER BY EVENT_ID LIMIT 1; ALTER TABLE t1 ADD COLUMN c INT; CREATE TRIGGER t_ps_trigger BEFORE INSERT ON t1 FOR EACH ROW BEGIN SET NEW.c = (SELECT MAX(EVENT_ID) FROM performance_schema.EVENTS_WAITS_CURRENT); END; | INSERT INTO t1 (id) VALUES (11), (12), (13); SELECT id, c FROM t1 WHERE id > 10 ORDER BY c; id c 11 [EVENT_ID] 12 [EVENT_ID] 13 [EVENT_ID] DROP TRIGGER t_ps_trigger; CREATE PROCEDURE t_ps_proc(IN tid INT, OUT pid INT) BEGIN SELECT id FROM performance_schema.PROCESSLIST WHERE THREAD_ID = tid INTO pid; END; | CALL t_ps_proc(0, @p_id); CREATE FUNCTION t_ps_func(tid INT) RETURNS int BEGIN return (SELECT id FROM performance_schema.PROCESSLIST WHERE THREAD_ID = tid); END; | SELECT t_ps_func(0) = @p_id; t_ps_func(0) = @p_id 1 DROP PROCEDURE t_ps_proc; DROP FUNCTION t_ps_func; DROP TABLE t1;