当前位置: 首页 > 编程笔记 >

mysql压力测试脚本实例

纪鸿禧
2023-03-14
本文向大家介绍mysql压力测试脚本实例,包括了mysql压力测试脚本实例的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了mysql压力测试的脚本,分享给大家供大家参考。具体如下:

创建表DEPT
 

CREATE TABLE dept( /*部门表*/

deptno MEDIUMINT   UNSIGNED  NOT NULL  DEFAULT 0,

dname VARCHAR(20)  NOT NULL  DEFAULT "",

loc VARCHAR(13) NOT NULL DEFAULT ""

) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;

 
创建表EMP雇员
CREATE TABLE emp

(empno  MEDIUMINT UNSIGNED  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,

comm DECIMAL(7,2) NOT NULL,

deptno MEDIUMINT UNSIGNED NOT NULL DEFAULT 0

)ENGINE=MyISAM DEFAULT CHARSET=utf8 ;

工资级别表

CREATE TABLE salgrade

(

grade MEDIUMINT UNSIGNED NOT NULL DEFAULT 0,

losal DECIMAL(17,2)  NOT NULL,

hisal DECIMAL(17,2)  NOT NULL

)ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO salgrade VALUES (1,700,1200);

INSERT INTO salgrade VALUES (2,1201,1400);

INSERT INTO salgrade VALUES (3,1401,2000);

INSERT INTO salgrade VALUES (4,2001,3000);

INSERT INTO salgrade VALUES (5,3001,9999);

随机产生字符串
定义一个新的命令结束符合

delimiter $$

删除自定的函数
drop  function rand_string $$

这里我创建了一个函数.
create function rand_string(n INT)

returns varchar(255)

begin 

 declare chars_str varchar(100) default

   'abcdefghijklmnopqrstuvwxyzABCDEFJHIJKLMNOPQRSTUVWXYZ';

 declare return_str varchar(255) default '';

 declare i int default 0;

 while i < n do 

   set return_str =concat(return_str,substring(chars_str,floor(1+rand()*52),1));

   set i = i + 1;

   end while;

  return return_str;

  end $$

delimiter ; select rand_string(6);


随机产生部门编号
delimiter $$

drop  function rand_num $$

这里我们又自定了一个函数
create function rand_num( )

returns int(5)

begin 

 declare i int default 0;

 set i = floor(10+rand()*500);

return i;

  end $$

delimiter ; select rand_num();

向emp表中插入记录(海量的数据)

delimiter $$

drop procedure insert_emp $$

 

create procedure insert_emp(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 emp values ((start+i) ,rand_string(6),'SALESMAN',0001,curdate(),2000,400,rand_num());

  until i = max_num

 end repeat;

   commit;

 end $$

delimiter ;

调用刚刚写好的函数, 1800000条记录,从100001号开始

call insert_emp(100001,1800000);

向dept表中插入记录

delimiter $$

drop procedure insert_dept $$

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 values ((start+i) ,rand_string(10),rand_string(8));   until i = max_num  end repeat;    commit;  end $$

delimiter ; call insert_dept(100,10);

向salgrade 表插入数据

delimiter $$

drop procedure insert_salgrade $$

create procedure insert_salgrade(in start int(10),in max_num int(10))

begin

declare i int default 0; 

 set autocommit = 0;

 ALTER TABLE emp DISABLE KEYS;  

 repeat

 set i = i + 1;

 insert into salgrade values ((start+i) ,(start+i),(start+i));

  until i = max_num

 end repeat;

   commit;

 end $$

delimiter ;

#测试不需要了

#call insert_salgrade(10000,1000000);

希望本文所述对大家的MySQL数据库程序设计有所帮助。

 类似资料:
  • APM 厂商「云智慧」是 DaoCloud 的合作伙伴,云智慧提供了用于应用压力测试的产品「压测宝」,可供 DaoCloud 上部署的应用进行分布式压力测试。以下内容由云智慧公司提供。 压测宝介绍 云智慧压测宝: 自动化全链路云测试,模拟真实压力 压测宝可以利用全球的云资源,快速灵活地部署测试,使任何客户都可以根据需求进行互联网和移动应用的性能测试,帮助客户找出系统瓶颈和潜在问题,改善和提升网站品

  • 概述 Web压力测试 工具 LoadRunner LoadRunner是一种预测系统行为和性能的负载测试工具,通过模拟实际用户的操作行为进行实时性能监测,来帮助测试人员更快的查找和发现问题。LoadRunner适用于各种体系架构,能支持广泛的协议和技术,为测试提供特殊的解决方案。企业通过LoadRunner能最大限度地缩短测试时间,优化性能并加速应用系统的发布周期。 LoadRunner提供了3大

  • 测试环境: 系统:debian 6.0 64位 内存:64G cpu:Intel(R) Xeon(R) CPU E5-2420 0 @ 1.90GHz (2颗物理cpu,6核心,2线程) Workerman:开启200个Benchark进程 压测脚本:benchmark 业务:发送并返回hello字符串 普通PHP(版本5.3.10)压测 短连接(每次请求完成后关闭连接,下次请求建立新的连接):

  • 相关改动 commit Revision change c0fc9f8cac7d923d1a06a7235d21e54919d3d42a D66598 增加优先级队列支持 ee3d9d614fd36e5ea07460228c670f40e434dbf4 D66823 修改转发模型,到每台机器都使用单独线程池和thrift Clinet 5e068156aefda275c926b90c50f8df0

  • 测试环境: 系统:debian 6.0 64位 内存:64G cpu:Intel(R) Xeon(R) CPU E5-2420 0 @ 1.90GHz (2颗物理cpu,6核心,2线程) Workerman:开启200个Benchark进程 压测脚本:benchmark 业务:发送并返回hello字符串 普通PHP(版本5.3.10)压测 短链接(每次请求完成后关闭链接,下次请求建立新的链接):

  • 本文向大家介绍MySQL 之压力测试工具的使用方法,包括了MySQL 之压力测试工具的使用方法的使用技巧和注意事项,需要的朋友参考一下 一、MySQL自带的压力测试工具——Mysqlslap mysqlslap是mysql自带的基准测试工具,该工具查询数据,语法简单,灵活容易使用.该工具可以模拟多个客户端同时并发的向服务器发出查询更新,给出了性能测试数据而且提供了多种引擎的性能比较。mysqlsl

  • 压力测试很有趣,一开始好像压测的目的是找出系统在负载下能不能工作。现实中,系统在负载下确实能工作,但在负载足够重的某些情况下不能工作。我把这叫做碰壁或撞响[1]。可能会有例外,但大多数情况下会有这么一堵“墙”。压测的目的是为了指出墙在哪里,然后弄清楚怎么把墙移得更远些。 压测计划需要在工程的早期就规划好,因为它经常有助于弄清楚到底什么是被期望的。两秒的网页请求是一个悲伤的失败还是一个了不起的成功?

  • 本文向大家介绍python实现websocket的客户端压力测试,包括了python实现websocket的客户端压力测试的使用技巧和注意事项,需要的朋友参考一下 使用python进行websocket的客户端压力测试,这个代码是从github上 找到。然后简单修改了下。大神运用了进程池,以及线程池的内容。所以保存下来,学习学习 然后需要说明的是:本次用的python2.7,也尝试用python3