create database explain_test_db; create table explain_test_db.explain_test_table (c int); lock table explain_test_db.explain_test_table write; # Connection con1 insert into explain_test_db.explain_test_table values ('1'); # Connection default select OBJECT_INSTANCE_BEGIN, NAME, LOCKED_BY_THREAD_ID from performance_schema.mutex_instances where LOCKED_BY_THREAD_ID is not NULL limit 1 into @oib, @name, @lbtid; ==================================================================== Testing index for columns OBJECT_INSTANCE_BEGIN ==================================================================== ############ Explain for Query #################################### explain select count(*) from performance_schema.mutex_instances where OBJECT_INSTANCE_BEGIN = "impossible"; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL # NULL no matching row in const table ############ Explain for Query #################################### explain select count(*) from performance_schema.mutex_instances where OBJECT_INSTANCE_BEGIN > "impossible"; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE mutex_instances NULL ALL PRIMARY NULL NULL NULL # 33.33 Using where ############ Explain for Query #################################### explain select count(*) from performance_schema.mutex_instances where OBJECT_INSTANCE_BEGIN < "2"; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE mutex_instances NULL ALL PRIMARY NULL NULL NULL # 33.33 Using where ############ Explain for Query #################################### explain select count(*) from performance_schema.mutex_instances where OBJECT_INSTANCE_BEGIN = @oib; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE mutex_instances NULL const PRIMARY PRIMARY 8 const # 100.00 NULL ############# Explain End ######################################### flush status; select count(*) from performance_schema.mutex_instances where OBJECT_INSTANCE_BEGIN = @oib; count(*) # OK: handler_read_key incremented ==================================================================== Testing index for columns NAME ==================================================================== ############ Explain for Query #################################### explain select count(*) from performance_schema.mutex_instances where NAME = "impossible"; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE mutex_instances NULL ref NAME NAME 514 const # 100.00 NULL ############ Explain for Query #################################### explain select count(*) from performance_schema.mutex_instances where NAME > "impossible"; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE mutex_instances NULL ALL NAME NULL NULL NULL # 33.33 Using where ############ Explain for Query #################################### explain select count(*) from performance_schema.mutex_instances where NAME < "2"; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE mutex_instances NULL ALL NAME NULL NULL NULL # 33.33 Using where ############ Explain for Query #################################### explain select count(*) from performance_schema.mutex_instances where NAME = @name; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE mutex_instances NULL ref NAME NAME 514 const # 100.00 NULL ############# Explain End ######################################### flush status; select count(*) from performance_schema.mutex_instances where NAME = @name; count(*) # OK: handler_read_key incremented ==================================================================== Testing index for columns LOCKED_BY_THREAD_ID ==================================================================== ############ Explain for Query #################################### explain select count(*) from performance_schema.mutex_instances where LOCKED_BY_THREAD_ID = "impossible"; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE mutex_instances NULL ref LOCKED_BY_THREAD_ID LOCKED_BY_THREAD_ID 9 const # 100.00 Using where ############ Explain for Query #################################### explain select count(*) from performance_schema.mutex_instances where LOCKED_BY_THREAD_ID > "impossible"; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE mutex_instances NULL ALL LOCKED_BY_THREAD_ID NULL NULL NULL # 33.33 Using where ############ Explain for Query #################################### explain select count(*) from performance_schema.mutex_instances where LOCKED_BY_THREAD_ID < "2"; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE mutex_instances NULL ALL LOCKED_BY_THREAD_ID NULL NULL NULL # 33.33 Using where ############ Explain for Query #################################### explain select count(*) from performance_schema.mutex_instances where LOCKED_BY_THREAD_ID = @lbtid; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE mutex_instances NULL ref LOCKED_BY_THREAD_ID LOCKED_BY_THREAD_ID 9 const # 100.00 Using where ############# Explain End ######################################### flush status; select count(*) from performance_schema.mutex_instances where LOCKED_BY_THREAD_ID = @lbtid; count(*) # OK: handler_read_key incremented unlock tables; # connection con1 # connection default drop table explain_test_db.explain_test_table; drop database explain_test_db;