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

原文地址:https://www.cnblogs.com/handle/p/9792493.html

时间: 2024-12-16 17:55:00

Mysql慢查询开启和查看 ,存储过程批量插入1000万条记录进行慢查询测试的相关文章

java 批量插入10万条数据

for (int i = 0; i < 100000; i++) { dbHelper.insert("INSERT aaa(name) Values ('1')"); } 运行时间==780450ms conn = getConn(); // JAVA默认为TRUE,我们自己处理需要设置为FALSE,并且修改为手动提交,才可以调用rollback()函数 conn.setAutoCommit(false); st = conn.createStatement(); long s

批量插入100万条数据

创建数据库: --Create DataBase create database BulkTestDB; go use BulkTestDB; go --Create Table Create table BulkTestTable( Id int primary key, UserName nvarchar(32), Pwd varchar(16)) go --Create Table Valued CREATE TYPE BulkUdt AS TABLE (Id int, UserName

再送一波干货,测试2000线程并发下同时查询1000万条数据库表及索引优化

继上篇文章<绝对干货,教你4分钟插入1000万条数据到mysql数据库表,快快进来>发布后在博客园首页展示得到了挺多的阅读量,我这篇文章就是对上篇文章的千万级数据库表在高并发访问下如何进行测试访问 这篇文章的知识点如下: 1.如何自写几十行代码就能模拟测试高并发下访问千万级数据库表 2.比较高并发下(200次/秒,2000次/秒,10000次/秒)数据库的性能 3.比较千万级数据库在查询时加索引与不加索引的巨大差异(说实话,这个测试结果让我自己本人也很惊讶) 针对上篇文章插入的1000万条数据

C++完成Oracle存储过程批量插入(一)

为了满足大数据量的批量插入这个需求,最近研究了一下Oracle数据库的批量插入这块儿,本篇先介绍一下这两天来所了解到的以及一次不成功的C++进行存储过程批量插入方案. 一.Oracle处理批量插入存储过程 1.Oracle处理批量插入涉及到的相关概念有:Type.bulk collect.Oracle数组等.现在对它们依次简单的介绍一下. 1)Type Type主要用于用户建立Oracle自定义类型. Type常用的自定义类型介绍: A.子类型 类似与全局定义的常量,只要改一处地方,与此常量相关

postgres 使用存储过程批量插入数据

参考资料(pl/pgsql 官方文档): http://www.postgresql.org/docs/9.3/static/plpgsql.html create or replace function creatData2() returns boolean AS $BODY$ declare ii integer; begin II:=1; FOR ii IN 1..10000000 LOOP INSERT INTO ipm_model_history_data (res_model, r

MySQL 如何准备一亿条记录的表来测试

曾经一个朋友问我如何快速的在线往一个大表里面添加一个字段或者修改一个字段的长度,mysql版本是5.6,所以就准备在测试环境准备一个一亿条记录的表,然后来实际测试下到底哪种方式比较快,先来开始准备一亿条记录的表.   我线上有上亿条记录的表,但是很多网上朋友都没有,那么我这里就实践了一条办法,来实现自己构造一亿条数据记录的表.实现思路就是先建一张通用的20个字段左右的用户表,然后写一个存储过程,不停的往这个表里面写数据,while循环写上一亿次,这样就形成了一张一亿条记录的表出来.     1.

mysql利用存储过程批量插入数据

最近需要测试一下mysql单表数据达到1000W条以上时增删改查的性能.由于没有现成的数据,因此自己构造,本文只是实例,以及简单的介绍. 首先当然是建表: CREATE TABLE `fortest` (   `ID` INT(30) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,   `IP` VARCHAR(32) NOT NULL,   `OID` VARCHAR(15) DEFAULT NULL) 其次,构建存储过程: DELIMITER $$

sqlserver存储过程批量插入数据

在系统中经常会遇到向数据库中批量插入数据情况,存储过程中没有数组,只有通过字符串分割循环插入,下面是一个本人研究的一个例子: create proc [dbo].[Proc_TestBatchMainDetailIns] @mainName nvarchar(50),@detailNameStr nvarchar(max),@detailAgeStr nvarchar(max), @detailRowCount int=1,@tmpFlag int=1,@newMainId int=0 as b

【sqlserver】批量插入10万数据

DECLARE @LN VARCHAR(300),@MN VARCHAR(200),@FN VARCHAR(200)DECLARE @LN_N INT,@MN_N INT,@FN_N INTSET @LN='李王张刘陈杨黄赵周吴徐孙朱马胡郭林何高梁郑罗宋谢唐韩曹许邓萧冯曾程蔡彭潘袁于董余苏叶吕魏蒋田杜丁沈姜范江傅钟卢汪戴崔任陆廖姚方金邱夏谭韦贾邹石熊孟秦阎薛侯雷白龙段郝孔邵史毛常万顾赖武康贺严尹钱施牛洪龚'SET @MN='德绍宗邦裕傅家積善昌世贻维孝友继绪定呈祥大正启仕执必定仲元魁家生先泽远永