show profiles;
Query_ID	Duration	Query
show profile all;
Status	Duration	CPU_user	CPU_system	Context_voluntary	Context_involuntary	Block_ops_in	Block_ops_out	Messages_sent	Messages_received	Page_faults_major	Page_faults_minor	Swaps	Source_function	Source_file	Source_line
show session variables like 'profil%';
Variable_name	Value
profiling	OFF
profiling_history_size	15
select @@profiling;
@@profiling
0
set global profiling = ON;
ERROR HY000: Variable 'profiling' is a SESSION variable and can't be used with SET GLOBAL
set @start_value= @@global.profiling_history_size;
set global profiling_history_size=100;
show global variables like 'profil%';
Variable_name	Value
profiling	OFF
profiling_history_size	100
set session profiling = ON;
set session profiling_history_size=30;
show session variables like 'profil%';
Variable_name	Value
profiling	ON
profiling_history_size	30
select @@profiling;
@@profiling
1
create table t1 (
a int,
b int
);
insert into t1 values (1,1), (2,null), (3, 4);
insert into t1 values (5,1), (6,null), (7, 4);
insert into t1 values (1,1), (2,null), (3, 4);
insert into t1 values (5,1), (6,null), (7, 4);
select max(x) from (select sum(a) as x from t1 group by b) as teeone;
max(x)
20
insert into t1 select * from t1;
select count(*) from t1;
count(*)
24
insert into t1 select * from t1;
insert into t1 select * from t1;
insert into t1 select * from t1;
select count(*) from t1;
count(*)
192
insert into t1 select * from t1;
insert into t1 select * from t1;
insert into t1 select * from t1;
select count(*) from t1;
count(*)
1536
select sum(a) from t1;
sum(a)
6144
select sum(a) from t1 group by b;
sum(a)
2048
1536
2560
select sum(a) + sum(b) from t1 group by b;
sum(a) + sum(b)
NULL
2048
4608
select max(x) from (select sum(a) as x from t1 group by b) as teeone;
max(x)
2560
select '012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890' as big_string;
big_string
012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890
show profiles;
Query_ID	Duration	Query
1	#	set session profiling_history_size=30
2	#	show session variables like 'profil%'
3	#	select @@profiling
4	#	create table t1 (
a int,
b int
)
5	#	insert into t1 values (1,1), (2,null), (3, 4)
6	#	insert into t1 values (5,1), (6,null), (7, 4)
7	#	insert into t1 values (1,1), (2,null), (3, 4)
8	#	insert into t1 values (5,1), (6,null), (7, 4)
9	#	select max(x) from (select sum(a) as x from t1 group by b) as teeone
10	#	insert into t1 select * from t1
11	#	select count(*) from t1
12	#	insert into t1 select * from t1
13	#	insert into t1 select * from t1
14	#	insert into t1 select * from t1
15	#	select count(*) from t1
16	#	insert into t1 select * from t1
17	#	insert into t1 select * from t1
18	#	insert into t1 select * from t1
19	#	select count(*) from t1
20	#	select sum(a) from t1
21	#	select sum(a) from t1 group by b
22	#	select sum(a) + sum(b) from t1 group by b
23	#	select max(x) from (select sum(a) as x from t1 group by b) as teeone
24	#	select '0123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345
show profile for query 15;
show profile cpu for query 15;
show profile cpu, block io for query 15;
show profile cpu for query 9 limit 2 offset 2;
show profile cpu for query 10 limit 0;
show profile cpu for query 65534;
show profile memory;
show profile block io;
show profile context switches;
show profile page faults;
show profile ipc;
show profile swaps limit 1 offset 2;
show profile source;
show profile all for query 0 limit 0;
show profile all for query 15;
select * from information_schema.profiling;
select query_id, state, duration from information_schema.profiling;
select query_id, sum(duration) from information_schema.profiling group by query_id;
select query_id, count(*) from information_schema.profiling group by query_id;
select sum(duration) from information_schema.profiling;
select query_id, count(*), sum(duration) from information_schema.profiling group by query_id;
select CPU_user, CPU_system, Context_voluntary, Context_involuntary, Block_ops_in, Block_ops_out, Messages_sent, Messages_received, Page_faults_major, Page_faults_minor, Swaps, Source_function, Source_file, Source_line from information_schema.profiling;
drop table if exists t1, t2, t3;
Warnings:
Note	1051	Unknown table 't2'
Note	1051	Unknown table 't3'
create table t1 (id int );
create table t2 (id int not null);
create table t3 (id int not null primary key);
insert into t1 values (1), (2), (3);
insert into t2 values (1), (2), (3);
insert into t3 values (1), (2), (3);
show profiles;
Query_ID	Duration	Query
10	#	insert into t1 select * from t1
11	#	select count(*) from t1
12	#	insert into t1 select * from t1
13	#	insert into t1 select * from t1
14	#	insert into t1 select * from t1
15	#	select count(*) from t1
16	#	insert into t1 select * from t1
17	#	insert into t1 select * from t1
18	#	insert into t1 select * from t1
19	#	select count(*) from t1
20	#	select sum(a) from t1
21	#	select sum(a) from t1 group by b
22	#	select sum(a) + sum(b) from t1 group by b
23	#	select max(x) from (select sum(a) as x from t1 group by b) as teeone
24	#	select '0123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345
25	#	select * from information_schema.profiling
26	#	select query_id, state, duration from information_schema.profiling
27	#	select query_id, sum(duration) from information_schema.profiling group by query_id
28	#	select query_id, count(*) from information_schema.profiling group by query_id
29	#	select sum(duration) from information_schema.profiling
30	#	select query_id, count(*), sum(duration) from information_schema.profiling group by query_id
31	#	select CPU_user, CPU_system, Context_voluntary, Context_involuntary, Block_ops_in, Block_ops_out, Messages_sent, Messages_received, Page_faults_major, Page_faults_minor, Swaps, Source_function, Source_file, Source_line from information_schema.profiling
32	#	drop table if exists t1, t2, t3
33	#	SHOW WARNINGS
34	#	create table t1 (id int )
35	#	create table t2 (id int not null)
36	#	create table t3 (id int not null primary key)
37	#	insert into t1 values (1), (2), (3)
38	#	insert into t2 values (1), (2), (3)
39	#	insert into t3 values (1), (2), (3)
select * from t1;
id
1
2
3
show profiles;
Query_ID	Duration	Query
11	#	select count(*) from t1
12	#	insert into t1 select * from t1
13	#	insert into t1 select * from t1
14	#	insert into t1 select * from t1
15	#	select count(*) from t1
16	#	insert into t1 select * from t1
17	#	insert into t1 select * from t1
18	#	insert into t1 select * from t1
19	#	select count(*) from t1
20	#	select sum(a) from t1
21	#	select sum(a) from t1 group by b
22	#	select sum(a) + sum(b) from t1 group by b
23	#	select max(x) from (select sum(a) as x from t1 group by b) as teeone
24	#	select '0123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345
25	#	select * from information_schema.profiling
26	#	select query_id, state, duration from information_schema.profiling
27	#	select query_id, sum(duration) from information_schema.profiling group by query_id
28	#	select query_id, count(*) from information_schema.profiling group by query_id
29	#	select sum(duration) from information_schema.profiling
30	#	select query_id, count(*), sum(duration) from information_schema.profiling group by query_id
31	#	select CPU_user, CPU_system, Context_voluntary, Context_involuntary, Block_ops_in, Block_ops_out, Messages_sent, Messages_received, Page_faults_major, Page_faults_minor, Swaps, Source_function, Source_file, Source_line from information_schema.profiling
32	#	drop table if exists t1, t2, t3
33	#	SHOW WARNINGS
34	#	create table t1 (id int )
35	#	create table t2 (id int not null)
36	#	create table t3 (id int not null primary key)
37	#	insert into t1 values (1), (2), (3)
38	#	insert into t2 values (1), (2), (3)
39	#	insert into t3 values (1), (2), (3)
40	#	select * from t1
This ^^ should end in "select * from t1;"
delete from t1;
insert into t1 values (1), (2), (3);
insert into t1 values (1), (2), (3);
select * from t1;
id
1
2
3
1
2
3
show profiles;
Query_ID	Duration	Query
15	#	select count(*) from t1
16	#	insert into t1 select * from t1
17	#	insert into t1 select * from t1
18	#	insert into t1 select * from t1
19	#	select count(*) from t1
20	#	select sum(a) from t1
21	#	select sum(a) from t1 group by b
22	#	select sum(a) + sum(b) from t1 group by b
23	#	select max(x) from (select sum(a) as x from t1 group by b) as teeone
24	#	select '0123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345
25	#	select * from information_schema.profiling
26	#	select query_id, state, duration from information_schema.profiling
27	#	select query_id, sum(duration) from information_schema.profiling group by query_id
28	#	select query_id, count(*) from information_schema.profiling group by query_id
29	#	select sum(duration) from information_schema.profiling
30	#	select query_id, count(*), sum(duration) from information_schema.profiling group by query_id
31	#	select CPU_user, CPU_system, Context_voluntary, Context_involuntary, Block_ops_in, Block_ops_out, Messages_sent, Messages_received, Page_faults_major, Page_faults_minor, Swaps, Source_function, Source_file, Source_line from information_schema.profiling
32	#	drop table if exists t1, t2, t3
33	#	SHOW WARNINGS
34	#	create table t1 (id int )
35	#	create table t2 (id int not null)
36	#	create table t3 (id int not null primary key)
37	#	insert into t1 values (1), (2), (3)
38	#	insert into t2 values (1), (2), (3)
39	#	insert into t3 values (1), (2), (3)
40	#	select * from t1
41	#	delete from t1
42	#	insert into t1 values (1), (2), (3)
43	#	insert into t1 values (1), (2), (3)
44	#	select * from t1
set session profiling = OFF;
select sum(id) from t1;
sum(id)
12
show profiles;
Query_ID	Duration	Query
15	#	select count(*) from t1
16	#	insert into t1 select * from t1
17	#	insert into t1 select * from t1
18	#	insert into t1 select * from t1
19	#	select count(*) from t1
20	#	select sum(a) from t1
21	#	select sum(a) from t1 group by b
22	#	select sum(a) + sum(b) from t1 group by b
23	#	select max(x) from (select sum(a) as x from t1 group by b) as teeone
24	#	select '0123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345
25	#	select * from information_schema.profiling
26	#	select query_id, state, duration from information_schema.profiling
27	#	select query_id, sum(duration) from information_schema.profiling group by query_id
28	#	select query_id, count(*) from information_schema.profiling group by query_id
29	#	select sum(duration) from information_schema.profiling
30	#	select query_id, count(*), sum(duration) from information_schema.profiling group by query_id
31	#	select CPU_user, CPU_system, Context_voluntary, Context_involuntary, Block_ops_in, Block_ops_out, Messages_sent, Messages_received, Page_faults_major, Page_faults_minor, Swaps, Source_function, Source_file, Source_line from information_schema.profiling
32	#	drop table if exists t1, t2, t3
33	#	SHOW WARNINGS
34	#	create table t1 (id int )
35	#	create table t2 (id int not null)
36	#	create table t3 (id int not null primary key)
37	#	insert into t1 values (1), (2), (3)
38	#	insert into t2 values (1), (2), (3)
39	#	insert into t3 values (1), (2), (3)
40	#	select * from t1
41	#	delete from t1
42	#	insert into t1 values (1), (2), (3)
43	#	insert into t1 values (1), (2), (3)
44	#	select * from t1
set session profiling = ON;
select @@profiling;
@@profiling
1
create function f1() returns varchar(50) return 'hello';
select @@profiling;
@@profiling
1
select * from t1 where id <> f1();
id
1
2
3
1
2
3
select @@profiling;
@@profiling
1
set session profiling = OFF;
drop table if exists profile_log;
Warnings:
Note	1051	Unknown table 'profile_log'
create table profile_log (how_many int);
drop procedure if exists p1;
drop procedure if exists p2;
drop procedure if exists p3;
create procedure p1 () 
modifies sql data 
begin 
set profiling = ON; 
select 'This p1 should show up in profiling'; 
insert into profile_log select count(*) from information_schema.profiling; 
end//
create procedure p2() 
deterministic 
begin 
set profiling = ON; 
call p1(); 
select 'This p2 should show up in profiling'; 
end//
create procedure p3 () 
reads sql data 
begin 
set profiling = ON; 
select 'This p3 should show up in profiling'; 
show profile; 
end//
first call to p1
call p1;
select * from profile_log;
second call to p1
call p1;
select * from profile_log;
third call to p1
call p1;
select * from profile_log;
set session profiling = OFF;
call p2;
set session profiling = OFF;
call p3;
show profiles;
drop procedure if exists p1;
drop procedure if exists p2;
drop procedure if exists p3;
drop table if exists profile_log;
set session profiling = ON;
drop table if exists t2;
create table t2 (id int not null);
create trigger t2_bi before insert on t2 for each row set @x=0;
select @@profiling;
@@profiling
1
insert into t2 values (1), (2), (3);
select @@profiling;
@@profiling
1
set session profiling = ON;
drop table if exists t1, t2;
create table t1 (id int not null primary key);
create table t2 (id int not null primary key, id1 int not null);
select @@profiling;
@@profiling
1
alter table t2 add foreign key (id1) references t1 (id) on delete cascade;
select @@profiling;
@@profiling
1
lock table t1 write;
select @@profiling;
@@profiling
1
unlock table;
select @@profiling;
@@profiling
1
set autocommit=0;
select @@profiling, @@autocommit;
@@profiling	@@autocommit
1	0
begin;
select @@profiling;
@@profiling
1
insert into t1 values (1);
insert into t2 values (1,1);
testing referential integrity cascade
delete from t1 where id = 1;
select @@profiling;
@@profiling
1
testing rollback
rollback;
select @@profiling;
@@profiling
1
testing commit
begin;
select @@profiling;
@@profiling
1
commit;
select @@profiling;
@@profiling
1
drop table if exists t1, t2, t3;
drop view if exists v1;
Warnings:
Note	1051	Unknown table 'test.v1'
drop function if exists f1;
set session profiling = OFF;
set global profiling_history_size= @start_value;
End of 5.0 tests