• 性能测试四十:Mysql存储过程造数据


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

    数据构造方法:

    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

    保存 点运行:

    稍等一会即可

     

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

  • 相关阅读:
    Codeforces Round #652 (Div. 2) A. FashionabLee(几何)
    轻量应用服务器如何通过修改apache配置文件实现非https的访问多域名到不同子目录程序?
    在Windows环境下使用hexo搭建博客以及部署到gitee / github
    使用WordPress搭建个人手机博客(阿里云)
    访问自己服务器的ip地址
    php环境无法上传文件的解决方法
    SSRF漏洞
    CSRF全家桶(含义,防御,攻击)
    JS实现HTML实体与字符的相互转换
    CentOS系统下载及应用部署
  • 原文地址:https://www.cnblogs.com/zhongyehai/p/10327725.html
Copyright © 2020-2023  润新知