博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql进阶(六)
阅读量:6836 次
发布时间:2019-06-26

本文共 2063 字,大约阅读时间需要 6 分钟。

1.插入1000w数据

涉及到的表:

create table dept(	id int unsigned primary key  auto_increment,	deptno mediumint not null default 0,	deptname varchar(20) not null default "",	loc varchar(13) not null default""	) engine=innodb default charset=gbk; create table emp(	id int unsigned primary key  auto_increment,	empno mediumint not null default 0,	ename varchar(20) not null default "",	job varchar(9) not null default"",	mgr mediumint unsigned not null default 0,	hiredate date not null,	sal decimal(7,2) not null,	deptno mediumint unsigned not null default 0	) engine=innodb default charset=gbk;

 创建函数:当创建函数时报错:this function has none of deterministic ……

由于开启过慢查询日志,因为 bin-log,必须为function指定一个参数。

创建函数,保证每条数据都不同

生成随机数函数:

delimiter $$create function rand_string(n int) returns varchar(255)begindeclare chars_str varchar(100) default 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';declare return_str varchar(255) default '';declare i int default 0;while i

 生成随机数字函数:注意 rand)num( )括号中空格

delimiter $$create function rand_num( ) returns int(5)begindeclare i int default 0;set i = floor(100+rand()*10);return i;end $$delimiter ;

创建存储过程:

-- 创建存储过程delimiter $$create procedure insert_emp(in start int(10),in max_num int(10))begin declare i int default 0;# set autocommit =0 把autocommit设置成0set autocommit = 0;repeatset i = i+1;insert into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) values ((start+i),rand_string(6),'SALEMAN',001,curdate(),2000,400,rand_num());until i = max_numend repeat;commit;end $$delimiter ;

 

delimiter $$create procedure insert_dept (in start int(10),in max_num int(10))begin declare i int default 0;set autocommit =0;repeat set i =i+1;insert into dept(deptno,dname,loc) values((start+i),rand_string(10),rand_string(8));until i = max_numend repeat;commit;end $$delimiter ;

2.show profiles

是mysql提供可以用来分析当前会话中语句执行的资源消耗情况。可以用于SQL的调优的测量。

参数默认关闭,并保存最近15次的运行结果

①查看是否支持profile

show variables like '%profiling%';

②开启功能,默认是关闭的,使用前需要开启

select * from emp group by id%10 limit 150000;

诊断SQL的命令演示 :show profile ,cpu,block io for query query_id;

3.全局查询日志

配置启用:

编码配置:

 

你可能感兴趣的文章
Scrapy-redis分布式组件
查看>>
package.json里的一些属性讲解
查看>>
leetcode 12 Integer to Roman
查看>>
Swoole+Lumen:同步编程风格调用MySQL异步查询
查看>>
探索 JUC 之美---Future 与 FutureTask
查看>>
《Java RESTful Web Service实战》第一章的实现补漏
查看>>
smarty 中的for循环
查看>>
gitlab+jenkins+maven+docker持续集成(十一)——sonarqube及sonarscanner代码审查
查看>>
linux5中实现DNS转换
查看>>
Windows Server 2003域环境搭建
查看>>
创建CA 和申请证书
查看>>
Linux 下统计文件夹大小及文件数量
查看>>
pgbackrest 简要使用说明
查看>>
Silverlight C# 游戏开发:L6 3D摄像机
查看>>
XML和XMLSocket(一) -- XML的基础知识
查看>>
[强烈推荐]ORACLE SQL:经典查询练手第四篇(不懂装懂,永世饭桶!)
查看>>
Struts知识问答
查看>>
C# 中符号的作用[备忘]
查看>>
关于preempt_enable 和 preempt_disable 【转】
查看>>
[SDK2.2]Windows Azure Virtual Network (1) 概念
查看>>