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(); 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM