性能测试是基于大量数据的,而进行性能测试之前肯定没那么多数据,所以就要自己准备数据

数据构造方法:

1.业务接口
  -- 适合数据表关系复杂
  -- 优点:数据完整性比较好
2.存储过程
  -- 适合表数量少,简单
  -- 优点:速度最快
3.脚本导入
  -- 适合数据逻辑复杂
  -- 自由度比较高
4.数据量级
  --测试数据
  --基础数据

启动并用工具连接mysql,这里的新建函数,所建的函数,即为存储过程

也可以在命令行mysql -u root -p 登录后输入存储过程的sql运行,但是这就是纯命令行了

执行truncate teacher清空表,再使用存储过程造数据

造数据:选过程

表里的字段:card_no, name, sex, age, course, created, modified

要造的数据的条件:插入10000 条数据,其中:card_no, name,age,均不重复,

要用到的函数:

DECLARE i INT DEFAULT 0; --定义一个变量i,给个默认值:0,也可以不给默认值(把DEFAULT 0去掉即可)

循环10000次:

  WHILE i<10001 DO
    sql语句;

    SET i = i+1;  --mysql存储过程中,变量自增只支持这个格式,不支持i++

  END WHILE;

NOW():当前时间

ONCAT(str1,str2,...):拼接函数,把str1、str2、···拼接起来

rand() :随机生成一个0--1之间的小数

取整:

round() 遵循四舍五入把原值转化为指定小数位数,如:round(1.45,0) = 1;round(1.55,1)=1.6
floor()向下取整 如:floor(1.45,0)= 1;floor(1.55,0) = 1
ceiling()向上取整 如:ceiling(1.45,0) = 2;ceiling(1.55,0)=2
age:这里只需要取个100以下的整数就行了,所以:FLOOR(RAND()*100)

-- 取n--m
FLOOR(RAND()*(m-n)+n);

存储过程语句:

BEGIN
  DECLARE i INT DEFAULT 0;-- 定义一个变量i,给个默认值:0,也可以不给默认值(把DEFAULT 0去掉即可)
  DECLARE p_sex VARCHAR(4);
  DECLARE p_course VARCHAR(4);

  WHILE i<10001 DO

    if i%2=0 THEN
      SET p_sex = 'M'; -- i为偶数时,性别为男
      SET p_course = 'Eng'; -- i为偶数时,课程为英语
    ELSE
      SET p_sex = 'W'; -- i为奇数时,性别为女
      SET p_course = 'Math'; -- i为奇数时,课程为数学
    END IF;
    -- card_no = 1000+i
    -- name = test_i
    -- sex = p_sex
    -- age = FLOOR(RAND()*100) 取个100以下的整数
    -- course = p_course
    INSERT INTO teacher (card_no, name, sex, age, course, created, modified) VALUES (10000+i,CONCAT('test_',i),p_sex,FLOOR(RAND()*100),p_course, NOW(), NOW());
    SET i = i+1; -- mysql存储过程中,变量自增只支持这个格式,不支持i++
  END WHILE;
END

保存 点运行:

稍等一会即可

存储过程造数据非常方便,应用也很广泛,但是不适合逻辑很复杂的数据结构,遇到不知道怎么实现时,网上都能找到

性能测试四十:Mysql存储过程造数据的更多相关文章

  1. mysql存储过程造数据取一个基准用户的各种类型都取一条数据作为基准数据,循环插入

    CREATE DEFINER=`user`@`%` PROCEDURE `create_upload_data`(in start_userid integer,in create_counter i ...

  2. Mysql 存储过程造测试数据

    1.Mysql 存储过程造测试数据 -- 创建一个用户表 CREATE TABLE `sys_user` ( -- `id` CHAR (32) NOT NULL DEFAULT '' COMMENT ...

  3. MYSQL进阶学习笔记四:MySQL存储过程之定义条件,处理过程及存储过程的管理!(视频序号:进阶_11,12)

    知识点五:MySQL存储过程之定义条件和处理过程及存储过程的管理(11,12) 定义条件和处理: 条件的定义和处理可以用来定义在处理过程中遇到的问题时相应的处理步骤. DECLARE CONTINUE ...

  4. Python学习日记(四十) Mysql数据库篇 八

    Mysql存储过程 存储过程是保存在Mysql上的一个别名(就是一堆SQL语句),使用别名就可以查到结果不用再去写SQL语句.存储过程用于替代程序员写SQL语句. 创建存储过程 delimiter / ...

  5. mysql存储过程造数

    性能测试时,数据库表通常需要很多数据,此时我们可以用存储过程来造数,以下代码mysql.Oracle都可以用 首先,先查看数据库表的设计,可以看到每张表有多少字段,分别都是什么类型,哪个字段是自动增长 ...

  6. mysql 存储过程 实现数据同步

    数据库 表 发生变化,需要把2.0的表数据 同步到3.0库中去: -- 同步数据存储过程执行 -- 更新留言旧表数据到新表数据中 /*DEFINER:Vector*/ drop procedure i ...

  7. 性能测试四十九:ngrinder压测平台

    下载地址:https://sourceforge.net/projects/ngrinder/files/ ngrinder工作原理:这里的controller就是ngrinder平台 部署(以win ...

  8. 性能测试四十八:Jenkins+Ant+Jmeter系统部署

    工作步骤: 1.开发提交代码SVN/Git 2.代码编译.打war包 3.上传war包到服务器 4.重启web服务器 5.开始测试/自动化测试 6.发测试结果 Jenkins工作: 1.开发提交代码G ...

  9. 性能测试四十二:sql案例之联合索引最左前缀

    联合索引:一个索引同时作用于多个字段 联合索引的最左前缀: A.B.C3个字段--联合索引 这个时候,可以使用的查询条件有:A.A+B.A+C.A+B+C,唯独不能使用B+C,即最左侧那个字段必须匹配 ...

随机推荐

  1. loadrunner之Java Vuser协议脚本编写

    步骤:1.根据自己使用的lr版面选择jdk 1)LR11   1.6   32位 2)LR12   1.7   32位 2.安装好jdk,并搭建java环境变量,安装好java代码编写工具 3.在sr ...

  2. 远程客户端连接MysqL数据库太慢解决方案

    远程客户端连接MysqL数据库太慢解决方案局域网客户端访问mysql 连接慢问题解决. cd /etc/mysql vi my.conf [mysqld] skip-name-resolve 此选项禁 ...

  3. HTTP1.0、HTTP1.1和HTTP2.0的区别

    一.HTTP的历史 早在HTTP建立之初,主要就是为了将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器.也是说对于前端来说,我们所写的HTML页面将要放在我们的web服务器上,用户端 ...

  4. Codeforces 15 E. Triangles

    http://codeforces.com/problemset/problem/15/E 题意: 从H点走下去,再走回H点,不能走重复路径,且路径不能把黑色三角形包围的方案数 中间的黑色三角形把整张 ...

  5. ELF文件解析(一):Segment和Section

    ELF 是Executable and Linking Format的缩写,即可执行和可链接的格式,是Unix/Linux系统ABI (Application Binary Interface)规范的 ...

  6. 未能加载文件或程序集System.Web.Http.WebHost

    解决方案:只需要在项目的bin文件夹下放入下面三个dll. 将:C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Assemblies中的  ...

  7. TDateTimePicker 选择最小日期时异常处理

    TDateTimePicker 控件属性窗体选择最小日期,运行时选择时可以看到的最小的日期,但是选择最小时就异常 :date is less than minimum of  ***     解决过程 ...

  8. spring-framework-x.x.x.RELEASE-dist下载教程

    1.打开Spring官网:https://spring.io,点击PROJECTS 2.点击SPRING FRAMEWORK 3.点击GitHub图标 4.找到Access to Binaries,点 ...

  9. MySQL— 基础

    目录 一.MySQL概述 二.下载安装 三.数据库操作 四.数据表操作 五.表内容操作 一.MySQL概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracl ...

  10. 《Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks》

    <Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks> 论文主要的三个贡 ...