Mysql慢查询开启和查看 ,存储过程批量插入1000万条记录进行慢查询测试
Posted 撑一支船蒿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql慢查询开启和查看 ,存储过程批量插入1000万条记录进行慢查询测试相关的知识,希望对你有一定的参考价值。
首先登陆进入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万条测试记录
1 #创建测试的test表 2 DROP TABLE IF EXISTS test; 3 CREATE TABLE test( 4 ID INT(10) NOT NULL, 5 `Name` VARCHAR(20) DEFAULT \'\' NOT NULL, 6 PRIMARY KEY( ID ) 7 )ENGINE=INNODB DEFAULT CHARSET utf8; 8 9 #创建生成测试数据的存储过程 10 DROP PROCEDURE IF EXISTS pre_test; 11 DELIMITER // 12 CREATE PROCEDURE pre_test() 13 BEGIN 14 DECLARE i INT DEFAULT 0; 15 SET autocommit = 0; 16 WHILE i<10000000 DO 17 INSERT INTO test ( ID,`Name` ) VALUES( i, CONCAT( \'Carl\', i ) ); 18 SET i = i+1; 19 IF i%2000 = 0 THEN 20 COMMIT; 21 END IF; 22 END WHILE; 23 END; // 24 DELIMITER ; 25 26 #执行存储过程生成测试数据 27 CALL pre_test();
以上是关于Mysql慢查询开启和查看 ,存储过程批量插入1000万条记录进行慢查询测试的主要内容,如果未能解决你的问题,请参考以下文章