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

数据构造方法:

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. java.lang.ClassCastException:java.util.LinkedHashMap不能转换为com.testing.models.Account

    ObjectMapper  mapper=new ObjectMapper();POJO pojo = mapper.convertValue(singleObject, POJO.class);

  2. OS + CentOS 7 / centos 7 / config / configuration / rescue / rc.local / yum

    s centos7开启网卡功能 https://blog.csdn.net/nkd50000/article/details/78903479 网卡默认是关闭的,未分配ip地址,解决办法: 1.修改文 ...

  3. JAVA记录-生成jar包方法

    方案一:用Eclipse自带的Export功能 步骤1:准备主清单文件 “MANIFEST.MF”, Manifest-Version: 1.0 Class-Path: lib/commons-cod ...

  4. 流媒体技术学习笔记之(一)nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器

    参照网址: [1]http://blog.csdn.net/redstarofsleep/article/details/45092147 [2]HLS介绍:http://www.cnblogs.co ...

  5. PageRank简单实现中的一个错误

    在我的一篇博客PageRank中,在5.1 算法实现中简单实现部分原本是有一个错误的.这个错误也体现出我当时对PageRank算法有理解上的偏差. 这是个什么样的错误呢?是这样的: 简单实现中计算每个 ...

  6. STM32Cube自学-1

    为了方便调试,使用Keil5+Proteus.1.新建Proteus STM32项目,选择STMF103C6 2.新建STM32CubeMX项目,选择同型号CPU,选择UART1,Asynchrono ...

  7. Java基础编程题——水仙花数

    package com.yangzl.basic; /** * 题目:打印出所有的"水仙花数". * 所谓"水仙花数"是指一个三位数, * 其各位数字立方和等于 ...

  8. JavaScript之从浏览器一键获取教务处个人课程信息【插件】

    由于博主的个人网站(:http://www.johnnyzen.cn/),每学期都需要更新呈现课程的静态信息,由于课程量多,而且手动爬取很冗杂,特别想自动化实现.这不,今天终于有点时间了,把之前写no ...

  9. 【BZOJ4826】【HNOI2017】影魔(扫描线,单调栈)

    [BZOJ4826][HNOI2017]影魔(扫描线,单调栈) 题面 BZOJ 洛谷 Description 影魔,奈文摩尔,据说有着一个诗人的灵魂.事实上,他吞噬的诗人灵魂早已成千上万.千百年来,他 ...

  10. CSS —— 选择器

    选择器种类 标签选择器 id选择器 类选择器 通配符 交集选择器 并集选择器 后代选择器 子代选择器 选择器设置样式优先级 默认样式 < 继承样式 < 通配符设置样式 < 标签选择器 ...