首先登陆进入Mysql命令行 执行sql show variables like 'slow_query%'; 结果为OFF 说明还未开启慢查询
执行sql show variables like 'long_query_time'; 可以看到具体的慢查询 “”时限“
我们先开启慢查询 执行sql
set global slow_query_log='ON';
这是再去查询一下(show variables like 'slow_query%';)发现已经开启了。
也可以设置时限为1秒
set global long_query_time=1;
上面的方法只是临时生效,mysql重启后就会失效
我们设置永久性的需要 在/etc/my.cnf里设置 (如果是win phpstudy 则在my.ini里添加)
# 慢查询日志
slow_query_log = ON
slow_query_log_file = D:\phpstudy\PHPTutorial\MySQL\data\XX-081269-01-slow.log
long_query_time = 1
重启即可
下面我们来慢查询执行一次
首先建表 批量插入1000万条测试记录
#创建测试的test表
DROP TABLE IF EXISTS test;
CREATE TABLE test(
ID INT(10) NOT NULL,
`Name` VARCHAR(20) DEFAULT '' NOT NULL,
PRIMARY KEY( ID )
)ENGINE=INNODB DEFAULT CHARSET utf8; #创建生成测试数据的存储过程
DROP PROCEDURE IF EXISTS pre_test;
DELIMITER //
CREATE PROCEDURE pre_test()
BEGIN
DECLARE i INT DEFAULT 0;
SET autocommit = 0;
WHILE i<10000000 DO
INSERT INTO test ( ID,`Name` ) VALUES( i, CONCAT( 'Carl', i ) );
SET i = i+1;
IF i%2000 = 0 THEN
COMMIT;
END IF;
END WHILE;
END; //
DELIMITER ; #执行存储过程生成测试数据
CALL pre_test();