243 lines
		
	
	
		
			6.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			243 lines
		
	
	
		
			6.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | set @old_concurrent_insert= @@global.concurrent_insert; | ||
|  | set @@global.concurrent_insert= 0; | ||
|  | SET @old_log_output = @@global.log_output; | ||
|  | SET GLOBAL LOG_OUTPUT = 'FILE'; | ||
|  | flush status; | ||
|  | show status like 'Table_lock%'; | ||
|  | Variable_name	Value | ||
|  | Table_locks_immediate	0 | ||
|  | Table_locks_waited	0 | ||
|  | select * from information_schema.session_status where variable_name like 'Table_lock%'; | ||
|  | VARIABLE_NAME	VARIABLE_VALUE | ||
|  | TABLE_LOCKS_IMMEDIATE	0 | ||
|  | TABLE_LOCKS_WAITED	0 | ||
|  | # Switched to connection: con1 | ||
|  | set sql_log_bin=0; | ||
|  | set @old_general_log = @@global.general_log; | ||
|  | set global general_log = 'OFF'; | ||
|  | drop table if exists t1; | ||
|  | create table t1(n int) engine=myisam; | ||
|  | insert into t1 values(1); | ||
|  | select 1; | ||
|  | 1 | ||
|  | 1 | ||
|  | # Switched to connection: con2 | ||
|  | lock tables t1 read; | ||
|  | unlock tables; | ||
|  | lock tables t1 read; | ||
|  | # Switched to connection: con1 | ||
|  | update t1 set n = 3; | ||
|  | # Switched to connection: con2 | ||
|  | unlock tables; | ||
|  | # Switched to connection: con1 | ||
|  | show status like 'Table_locks_waited'; | ||
|  | Variable_name	Value | ||
|  | Table_locks_waited	1 | ||
|  | drop table t1; | ||
|  | set global general_log = @old_general_log; | ||
|  | # Switched to connection: default | ||
|  | select 1; | ||
|  | 1 | ||
|  | 1 | ||
|  | show status like 'last_query_cost'; | ||
|  | Variable_name	Value | ||
|  | Last_query_cost	0.000000 | ||
|  | create table t1 (a int); | ||
|  | insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10); | ||
|  | insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10); | ||
|  | insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10); | ||
|  | insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10); | ||
|  | insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10); | ||
|  | select * from t1 where a=6; | ||
|  | a | ||
|  | 6 | ||
|  | 6 | ||
|  | 6 | ||
|  | 6 | ||
|  | 6 | ||
|  | show status like 'last_query_cost'; | ||
|  | Variable_name	Value | ||
|  | Last_query_cost	12.084449 | ||
|  | show status like 'last_query_cost'; | ||
|  | Variable_name	Value | ||
|  | Last_query_cost	12.084449 | ||
|  | select 1; | ||
|  | 1 | ||
|  | 1 | ||
|  | show status like 'last_query_cost'; | ||
|  | Variable_name	Value | ||
|  | Last_query_cost	0.000000 | ||
|  | drop table t1; | ||
|  | FLUSH STATUS; | ||
|  | SHOW STATUS LIKE 'max_used_connections'; | ||
|  | Variable_name	Value | ||
|  | Max_used_connections	1 | ||
|  | SELECT * FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME LIKE 'max_used_connections'; | ||
|  | VARIABLE_NAME	VARIABLE_VALUE | ||
|  | MAX_USED_CONNECTIONS	1 | ||
|  | SET @save_thread_cache_size=@@thread_cache_size; | ||
|  | SET GLOBAL thread_cache_size=3; | ||
|  | SHOW STATUS LIKE 'max_used_connections'; | ||
|  | Variable_name	Value | ||
|  | Max_used_connections	3 | ||
|  | SELECT * FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME LIKE 'max_used_connections'; | ||
|  | VARIABLE_NAME	VARIABLE_VALUE | ||
|  | MAX_USED_CONNECTIONS	3 | ||
|  | FLUSH STATUS; | ||
|  | SHOW STATUS LIKE 'max_used_connections'; | ||
|  | Variable_name	Value | ||
|  | Max_used_connections	2 | ||
|  | SELECT * FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME LIKE 'max_used_connections'; | ||
|  | VARIABLE_NAME	VARIABLE_VALUE | ||
|  | MAX_USED_CONNECTIONS	2 | ||
|  | SHOW STATUS LIKE 'max_used_connections'; | ||
|  | Variable_name	Value | ||
|  | Max_used_connections	3 | ||
|  | SELECT * FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME LIKE 'max_used_connections'; | ||
|  | VARIABLE_NAME	VARIABLE_VALUE | ||
|  | MAX_USED_CONNECTIONS	3 | ||
|  | SHOW STATUS LIKE 'max_used_connections'; | ||
|  | Variable_name	Value | ||
|  | Max_used_connections	4 | ||
|  | SELECT * FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME LIKE 'max_used_connections'; | ||
|  | VARIABLE_NAME	VARIABLE_VALUE | ||
|  | MAX_USED_CONNECTIONS	4 | ||
|  | SET GLOBAL thread_cache_size=@save_thread_cache_size; | ||
|  | CREATE TABLE t1 ( a INT ); | ||
|  | INSERT INTO t1 VALUES (1), (2); | ||
|  | SELECT a FROM t1 LIMIT 1; | ||
|  | a | ||
|  | 1 | ||
|  | SHOW SESSION STATUS LIKE 'Last_query_cost'; | ||
|  | Variable_name	Value | ||
|  | Last_query_cost	2.402418 | ||
|  | EXPLAIN SELECT a FROM t1; | ||
|  | id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra | ||
|  | 1	SIMPLE	t1	ALL	NULL	NULL	NULL	NULL	2	 | ||
|  | SHOW SESSION STATUS LIKE 'Last_query_cost'; | ||
|  | Variable_name	Value | ||
|  | Last_query_cost	2.402418 | ||
|  | SELECT a FROM t1 UNION SELECT a FROM t1 ORDER BY a; | ||
|  | a | ||
|  | 1 | ||
|  | 2 | ||
|  | SHOW SESSION STATUS LIKE 'Last_query_cost'; | ||
|  | Variable_name	Value | ||
|  | Last_query_cost	0.000000 | ||
|  | EXPLAIN SELECT a FROM t1 UNION SELECT a FROM t1 ORDER BY a; | ||
|  | id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra | ||
|  | 1	PRIMARY	t1	ALL	NULL	NULL	NULL	NULL	2	 | ||
|  | 2	UNION	t1	ALL	NULL	NULL	NULL	NULL	2	 | ||
|  | NULL	UNION RESULT	<union1,2>	ALL	NULL	NULL	NULL	NULL	NULL	Using filesort | ||
|  | SHOW SESSION STATUS LIKE 'Last_query_cost'; | ||
|  | Variable_name	Value | ||
|  | Last_query_cost	0.000000 | ||
|  | SELECT a IN (SELECT a FROM t1) FROM t1 LIMIT 1; | ||
|  | a IN (SELECT a FROM t1) | ||
|  | 1 | ||
|  | SHOW SESSION STATUS LIKE 'Last_query_cost'; | ||
|  | Variable_name	Value | ||
|  | Last_query_cost	0.000000 | ||
|  | SELECT (SELECT a FROM t1 LIMIT 1) x FROM t1 LIMIT 1; | ||
|  | x | ||
|  | 1 | ||
|  | SHOW SESSION STATUS LIKE 'Last_query_cost'; | ||
|  | Variable_name	Value | ||
|  | Last_query_cost	0.000000 | ||
|  | SELECT * FROM t1 a, t1 b LIMIT 1; | ||
|  | a	a | ||
|  | 1	1 | ||
|  | SHOW SESSION STATUS LIKE 'Last_query_cost'; | ||
|  | Variable_name	Value | ||
|  | Last_query_cost	4.805836 | ||
|  | DROP TABLE t1; | ||
|  | show status like 'com_show_status'; | ||
|  | Variable_name	Value | ||
|  | Com_show_status	3 | ||
|  | show status like 'hand%write%'; | ||
|  | Variable_name	Value | ||
|  | Handler_write	0 | ||
|  | show status like '%tmp%'; | ||
|  | Variable_name	Value | ||
|  | Created_tmp_disk_tables	0 | ||
|  | Created_tmp_files	0 | ||
|  | Created_tmp_tables	0 | ||
|  | show status like 'hand%write%'; | ||
|  | Variable_name	Value | ||
|  | Handler_write	0 | ||
|  | show status like '%tmp%'; | ||
|  | Variable_name	Value | ||
|  | Created_tmp_disk_tables	0 | ||
|  | Created_tmp_files	0 | ||
|  | Created_tmp_tables	0 | ||
|  | show status like 'com_show_status'; | ||
|  | Variable_name	Value | ||
|  | Com_show_status	8 | ||
|  | rnd_diff	tmp_table_diff | ||
|  | 20	8 | ||
|  | flush status; | ||
|  | show status like 'Com%function'; | ||
|  | Variable_name	Value | ||
|  | Com_alter_function	0 | ||
|  | Com_create_function	0 | ||
|  | Com_drop_function	0 | ||
|  | create function f1 (x INTEGER) returns integer | ||
|  | begin | ||
|  | declare ret integer; | ||
|  | set ret = x * 10; | ||
|  | return ret; | ||
|  | end // | ||
|  | drop function f1; | ||
|  | show status like 'Com%function'; | ||
|  | Variable_name	Value | ||
|  | Com_alter_function	0 | ||
|  | Com_create_function	1 | ||
|  | Com_drop_function	1 | ||
|  | create database db37908; | ||
|  | create table db37908.t1(f1 int); | ||
|  | insert into db37908.t1 values(1); | ||
|  | grant usage,execute on test.* to mysqltest_1@localhost; | ||
|  | create procedure proc37908() begin select 1; end | | ||
|  | create function func37908() returns int sql security invoker | ||
|  | return (select * from db37908.t1 limit 1)| | ||
|  | select * from db37908.t1; | ||
|  | ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 't1' | ||
|  | show status where variable_name ='uptime' and 2 in (select * from db37908.t1); | ||
|  | ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 't1' | ||
|  | show procedure status where name ='proc37908' and 1 in (select f1 from db37908.t1); | ||
|  | ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 't1' | ||
|  | show function status where name ='func37908' and 1 in (select func37908()); | ||
|  | ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 't1' | ||
|  | drop database db37908; | ||
|  | drop procedure proc37908; | ||
|  | drop function func37908; | ||
|  | REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_1@localhost; | ||
|  | DROP USER mysqltest_1@localhost; | ||
|  | DROP PROCEDURE IF EXISTS p1; | ||
|  | DROP FUNCTION IF EXISTS f1; | ||
|  | CREATE FUNCTION f1() RETURNS INTEGER | ||
|  | BEGIN | ||
|  | DECLARE foo INTEGER; | ||
|  | DECLARE bar INTEGER; | ||
|  | SET foo=1; | ||
|  | SET bar=2; | ||
|  | RETURN foo; | ||
|  | END $$ | ||
|  | CREATE PROCEDURE p1() | ||
|  | BEGIN | ||
|  | SELECT 1; | ||
|  | END $$ | ||
|  | SELECT f1(); | ||
|  | f1() | ||
|  | 1 | ||
|  | CALL p1(); | ||
|  | 1 | ||
|  | 1 | ||
|  | SELECT 9; | ||
|  | 9 | ||
|  | 9 | ||
|  | DROP PROCEDURE p1; | ||
|  | DROP FUNCTION f1; | ||
|  | set @@global.concurrent_insert= @old_concurrent_insert; | ||
|  | SET GLOBAL log_output = @old_log_output; |