Mysql慢查詢開啟和查看 ,存儲過程批量插入1000萬條記錄進行慢查詢測試
阿新 • • 發佈:2018-10-15
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萬條記錄進行慢查詢測試