mysql profiles_mysql海量数据分析profiles

1) 插入海量数据;

通过存储函数插入海量数据:

(1)产生随机字符串

delimiter $

create function randstring(n int) returns varchar(255)

begin

declare all_str varchar(100) default 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQ' ;

declare return_str varchar(255) default '';

declare i int default 0;

while i < n

do

set return_str = concat( return_str , substring( all_str, FLOOR(1+rand()*52), 1) ) ;

set i = i + 1;

end while;

return return_str;

end $

(2)产生随机整数

create function ran_num () returns int(5)

begin

declare i int default 0;

set i = floor(rand()*100);

return i;

end $;

通过存储过程插入海量数据,

create procedure insert_emp(in eid_start int(10), in data_times int(10))

begin

declare i int default 0;

set autocommit = 0;

repeat

insert into emp values(eid_start+i,randstring(5),'other',ran_num);

set i = i+1;

until i=data_times

end repeat;

commit;

end$

执行:call   insert_emp(1000,8000)$;

通过profiles分析海量数据:

1.查看mysql数据库配置,查看profiles是否打开;默认是关闭状态

show variables like ‘%profiles%’;

·  2:设置profiles开启:

set profiles on;

3. show profiles ;  会记录了所有的profiles之后的所有查询记录以及查询所花费的时间;但是只能看到io,Cpu一共消费的时间,不够精确;

d18f70c50c2d8e6687c3912229b310d5.png

4.-- 精确分析: sql诊断

show profile all for  query  id;

5.看全局的查询日志:记录开启之后的全部sql语句。(这次全局的记录操作只需要在开发过程或者调优打开即可,最终部署的时候一定要关闭)

show variables like '%general_log%'

打开全局日志:set global general_log = 1;

set global log_output='table';

开启全局日志(开启后,会记录所有sql)。会被记录到mysql.general_log表中;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值