# Tests for PERFORMANCE_SCHEMA --source include/have_log_bin.inc --source include/not_embedded.inc --source include/have_perfschema.inc --source include/master-slave.inc --disable_warnings drop table if exists test.t1; --sync_slave_with_master reset master; --enable_warnings create table test.t1(a int); drop table test.t1; --source include/show_binlog_events.inc # Notes # # The point of this test is to make sure code is properly instrumented, # where instruments have the proper key (binlog or relaylog), # it is not to dive into statistics for each instruments. # Different test execution sequence in different platforms do make the # results vary, making the test results very sensitive to changes. # To ensure robustness: # - log file rotation is limited to file .000001 and .000002 # - statistics are normalized to "NONE" or "MANY" # - statistics on ::update_cond conditions are not collected, # since this is too much dependent on execution. # - statistics on COND_binlog_background_thread and COND_xid_list are not # collected, as they depend on exact timing for background binlog # checkpointing operations. # connection master; select substring(file_name, locate("master-", file_name)) as FILE_NAME, EVENT_NAME, if (count_read > 0, "MANY", "NONE") as COUNT_READ, if (count_write > 0,"MANY", "NONE") as COUNT_WRITE, if (sum_number_of_bytes_read > 0, "MANY", "NONE") as SUM_NUMBER_OF_BYTES_READ, if (sum_number_of_bytes_write > 0, "MANY", "NONE") as SUM_NUMBER_OF_BYTES_WRITE from performance_schema.file_summary_by_instance where file_name like "%master-%" order by file_name; select * from performance_schema.file_summary_by_instance where file_name like "%slave-%" order by file_name; -- echo "Expect a master binlog + binlog_index" select substring(file_name, locate("master-", file_name)) as FILE_NAME, EVENT_NAME, if (count_read > 0, "MANY", "NONE") as COUNT_READ, if (count_write > 0,"MANY", "NONE") as COUNT_WRITE, if (sum_number_of_bytes_read > 0, "MANY", "NONE") as SUM_NUMBER_OF_BYTES_READ, if (sum_number_of_bytes_write > 0, "MANY", "NONE") as SUM_NUMBER_OF_BYTES_WRITE from performance_schema.file_summary_by_instance where event_name like "%binlog%" order by file_name; select EVENT_NAME, if (count_read > 0, "MANY", "NONE") as COUNT_READ, if (count_write > 0,"MANY", "NONE") as COUNT_WRITE, if (sum_number_of_bytes_read > 0, "MANY", "NONE") as SUM_NUMBER_OF_BYTES_READ, if (sum_number_of_bytes_write > 0, "MANY", "NONE") as SUM_NUMBER_OF_BYTES_WRITE from performance_schema.file_summary_by_event_name where event_name like "%binlog%" order by event_name; select EVENT_NAME, if (count_star > 0, "MANY", "NONE") as COUNT_STAR from performance_schema.events_waits_summary_global_by_event_name where event_name like "%MYSQL_BIN_LOG%" and event_name not like "%MYSQL_BIN_LOG::update_cond" and event_name not like "%MYSQL_BIN_LOG::COND_binlog_background_thread%" and event_name not like "%MYSQL_BIN_LOG::COND_xid_list" order by event_name; -- echo "Expect no slave relay log" select * from performance_schema.file_summary_by_instance where event_name like "%relaylog%" order by file_name; select * from performance_schema.file_summary_by_event_name where event_name like "%relaylog%" order by event_name; select * from performance_schema.events_waits_summary_global_by_event_name where event_name like "%MYSQL_RELAY_LOG%" and event_name not like "%MYSQL_RELAY_LOG::update_cond" order by event_name; sync_slave_with_master; -- echo "============ Performance schema on slave ============" select * from performance_schema.file_summary_by_instance where file_name like "%master-%" order by file_name; select substring(file_name, locate("slave-", file_name)) as FILE_NAME, EVENT_NAME, if (count_read > 0, "MANY", "NONE") as COUNT_READ, if (count_write > 0,"MANY", "NONE") as COUNT_WRITE, if (sum_number_of_bytes_read > 0, "MANY", "NONE") as SUM_NUMBER_OF_BYTES_READ, if (sum_number_of_bytes_write > 0, "MANY", "NONE") as SUM_NUMBER_OF_BYTES_WRITE from performance_schema.file_summary_by_instance where file_name like "%slave-%" and (file_name not like "%slave-relay-bin.0%" or file_name like "%slave-relay-bin.000001" or file_name like "%slave-relay-bin.000002") order by file_name; -- echo "Expect a slave binlog + binlog_index" select substring(file_name, locate("slave-", file_name)) as FILE_NAME, EVENT_NAME, if (count_read > 0, "MANY", "NONE") as COUNT_READ, if (count_write > 0,"MANY", "NONE") as COUNT_WRITE, if (sum_number_of_bytes_read > 0, "MANY", "NONE") as SUM_NUMBER_OF_BYTES_READ, if (sum_number_of_bytes_write > 0, "MANY", "NONE") as SUM_NUMBER_OF_BYTES_WRITE from performance_schema.file_summary_by_instance where event_name like "%binlog%" order by file_name; select EVENT_NAME, if (count_read > 0, "MANY", "NONE") as COUNT_READ, if (count_write > 0,"MANY", "NONE") as COUNT_WRITE, if (sum_number_of_bytes_read > 0, "MANY", "NONE") as SUM_NUMBER_OF_BYTES_READ, if (sum_number_of_bytes_write > 0, "MANY", "NONE") as SUM_NUMBER_OF_BYTES_WRITE from performance_schema.file_summary_by_event_name where event_name like "%binlog%" order by event_name; select EVENT_NAME, if (count_star > 0, "MANY", "NONE") as COUNT_STAR from performance_schema.events_waits_summary_global_by_event_name where event_name like "%MYSQL_BIN_LOG%" and event_name not like "%MYSQL_BIN_LOG::update_cond" and event_name not like "%MYSQL_BIN_LOG::COND_binlog_background_thread%" and event_name not like "%MYSQL_BIN_LOG::COND_xid_list" order by event_name; -- echo "Expect a slave relay log" select substring(file_name, locate("slave-", file_name)) as FILE_NAME, EVENT_NAME, if (count_read > 0, "MANY", "NONE") as COUNT_READ, if (count_write > 0,"MANY", "NONE") as COUNT_WRITE, if (sum_number_of_bytes_read > 0, "MANY", "NONE") as SUM_NUMBER_OF_BYTES_READ, if (sum_number_of_bytes_write > 0, "MANY", "NONE") as SUM_NUMBER_OF_BYTES_WRITE from performance_schema.file_summary_by_instance where event_name like "%relaylog%" and (file_name not like "%slave-relay-bin.0%" or file_name like "%slave-relay-bin.000001" or file_name like "%slave-relay-bin.000002") order by file_name; select EVENT_NAME, if (count_read > 0, "MANY", "NONE") as COUNT_READ, if (count_write > 0,"MANY", "NONE") as COUNT_WRITE, if (sum_number_of_bytes_read > 0, "MANY", "NONE") as SUM_NUMBER_OF_BYTES_READ, if (sum_number_of_bytes_write > 0, "MANY", "NONE") as SUM_NUMBER_OF_BYTES_WRITE from performance_schema.file_summary_by_event_name where event_name like "%relaylog%" order by event_name; select EVENT_NAME, if (count_star > 0, "MANY", "NONE") as COUNT_STAR from performance_schema.events_waits_summary_global_by_event_name where event_name like "%MYSQL_RELAY_LOG%" and event_name not like "%MYSQL_RELAY_LOG::update_cond" order by event_name; --source include/stop_slave.inc