1. 程式人生 > >Mysql慢查詢開啟和查看 ,存儲過程批量插入1000萬條記錄進行慢查詢測試

Mysql慢查詢開啟和查看 ,存儲過程批量插入1000萬條記錄進行慢查詢測試

har src spa not 生成 con image creat 進入

首先登陸進入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萬條記錄進行慢查詢測試