• 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:phpstudyPHPTutorialMySQLdataXX-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(); 
  • 相关阅读:
    基于ESFramework的P2P实现 —— ESFramework扩展之EsfP2P
    反射中使用 BindingFlags.IgnoreCase
    DTS开发记录(8)-- 主键的影响
    双向链表
    const_iterator和const iterator的区别
    顺序队列
    谈一谈网络编程学习经验
    使用模板元编程快速的得到斐波那契数。。
    数组的选择固定大小数组模板array存在的意义!
    C++查缺补漏2,赶紧的
  • 原文地址:https://www.cnblogs.com/handle/p/9792493.html
Copyright © 2020-2023  润新知