zoukankan      html  css  js  c++  java
  • mysql存储过程造数

    性能测试时,数据库表通常需要很多数据,此时我们可以用存储过程来造数,以下代码mysql、Oracle都可以用

    首先,先查看数据库表的设计,可以看到每张表有多少字段,分别都是什么类型,哪个字段是自动增长的等。然后根据表的结构写一个insert语句即可。

    其次,看哪些表涉及到性能问题,然后对这些表进行造数即可。

    因为数据库是有一些基础数据的,而一般每张表的id都是不可重复的,所以,为了避免插入的数据和原来的数据冲突,先查一下没张表有多少条数据,还有最大id的值为多少,再在这个基础上设置var变量的初始值即可。

    1、ID是自动增长的情况:

    //命令行执行
    drop procedure if exists p1;

    create PROCEDURE p2(IN loop_times INT)

    begin

    declare var int default 0;


    while var < loop_times DO

    set var=var+1;

    insert into user(name,age,sex,address,TIME)values('王',27,'女','北京','2018-04-19 10:40:32');

    end while;

    end

    //命令行执行
    CALL p1(50000);

    2、id非自动增长,但为主键的情况:

    drop procedure if exists p1_audit_market;


    create PROCEDURE p1_audit_market(IN loop_times INT)

    begin

    declare var int default 5000;


    while var < loop_times DO

    set var=var+1;

    INSERT INTO `audit_market`( `market_id`,`dpy`, `dpy_total`, `check_time`) VALUES
    (var,'10.000000000000000000', '20.000000000000000000', '1521600298');

    end while;

    end


    CALL p1_audit_market(55000);

    3、除了primary key,还有unique key的情况:

    drop procedure if exists p1_statistic_user_option;


    create PROCEDURE p1_statistic_user_option(IN loop_times INT)

    begin

    declare var int default 6000;
    declare var_user_id int default 10000;
    declare var_option_id int default 10000;

    while var < loop_times DO

    set var=var+1;
    set var_user_id=var_user_id+1;
    set var_option_id=var_option_id+1;

    INSERT INTO `statistic_user_option` VALUES (var_user_id, '3.618305697752373603',
    '4.114131019433091964', '1', '2', '10', '-2', '1', var_option_id , var, '选项A. 涨');

    end while;

    end

    强制停止存储过程:
    show PROCESSLIST;
    kill id即可

  • 相关阅读:
    如何在solution中添加一个test case
    Solution中的auto test case组织方式
    如何使用SPY++查找
    VS2012如何更新下载TFS上面的代码到本地
    Mita和Maui
    Fuzzy test
    RSS FEED的应用
    iscroll横向滑动(当前页状态标记自动变化)
    jquery技巧(持续更新。。)
    jquery前端性能优化(持续添加。。。)
  • 原文地址:https://www.cnblogs.com/lanyy/p/8882783.html
Copyright © 2011-2022 走看看