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即可
mysql存储过程造数的更多相关文章
- Mysql 存储过程造测试数据
1.Mysql 存储过程造测试数据 -- 创建一个用户表 CREATE TABLE `sys_user` ( -- `id` CHAR (32) NOT NULL DEFAULT '' COMMENT ...
- 性能测试四十:Mysql存储过程造数据
性能测试是基于大量数据的,而进行性能测试之前肯定没那么多数据,所以就要自己准备数据 数据构造方法: 1.业务接口 -- 适合数据表关系复杂 -- 优点:数据完整性比较好2.存储过程 -- 适合表数量少 ...
- mysql存储过程造数据取一个基准用户的各种类型都取一条数据作为基准数据,循环插入
CREATE DEFINER=`user`@`%` PROCEDURE `create_upload_data`(in start_userid integer,in create_counter i ...
- MySQL 存储过程传參之in, out, inout 參数使用方法
存储过程传參:存储过程的括号中.能够声明參数. 语法是 create procedure p([in/out/inout] 參数名 參数类型 ..) in :给參数传入值,定义的參数就得到了值 ou ...
- MySQL 存储过程 经常使用语法
MySQL 存储过程是从 MySQL 5.0 開始添加的新功能.存储过程的长处有一箩筐.只是最基本的还是运行效率和SQL 代码封装.特别是 SQL 代码封装功能,假设没有存储过程,在外部程序訪问数据库 ...
- 熟知MySQL存储过程
存储过程(Stored Procedure)是一组为了完毕特定功能的SQL语句集,经编译后存储在数据库中.用户通过指定存储过程的名字并给定參数(假设该存储过程带有參数)来调用运行它. MySQL 存储 ...
- MySql、PostgreSql、SqlServer三种数据库的造数存储过程实例
主要实例:把临时表tmp_table数据插入到目标表target_table 一.MySql造数存储过程实例 mysql造数 -- 第一步,创建临时表 CREATE TEMPORARY TABLE I ...
- 通过DbVisualizer 工具运行DB2存储过程实现INSERT语句主键自增造数
1.需求简介 最近开发人员需要进行一批数据进行生产上SQL语句耗时过长问题的验证与优化.所以在性能测试库中批量建造数据,由于交易本身业务逻辑过于复杂以及需要各种授权,最后决定采用插表的方式完成. 2. ...
- mysql 存储过程:提供查询语句并返回查询执行影响的行数
mysql 存储过程:提供查询语句并返回查询执行影响的行数DELIMITER $$ DROP PROCEDURE IF EXISTS `p_get_select_row_number`$$ CREAT ...
随机推荐
- ch02 课下作业
2.96遵循位级浮点编码规则,实现具有如下原型的函数: /* *Compute (int) f. *If conversion causes overflow or f is NaN, return ...
- Zabbix安装(debian,centos)
lnmp和lamp架构搭建一键安装脚本下载地址:https://lnmp.org/download.html https://github.com/teddysun/lamp/tree/master ...
- C#获取网页的HTML码、下载网站图片
1.根据URL请求获取页面HTML代码 /// <summary> /// 获取网页的HTML码 /// </summary> /// <param name=" ...
- 机器学习基石(台湾大学 林轩田),Lecture 1: The Learning Problem
课程的讲授从logo出发,logo由四个图案拼接而成,两个大的和两个小的.比较小的两个下一次课程就可能会解释到它们的意思,两个大的可能到课程后期才会解释到它们的意思(提示:红色代表使用机器学习危险,蓝 ...
- LeetCode--383--赎金信
问题描述: 给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串ransom能不能由第二个字符串magazines里面的字符构成.如果可以构成,返回 true ...
- 20170920xlVBA_FTP_UpDownLoad_DownLoad
'建立应用环境进程 Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpen ...
- ImportError: sys.meta_path is None, Python is likely shutting down
python执行过错中,报错:ImportError: sys.meta_path is None, Python is likely shutting down 解决方法:在C:\Users\Adm ...
- 配置ssh免密登录
安装ssh sudo apt-get install ssh 产生密钥:ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa (rsa为ssh的加密方式 ...
- 剑指offer-栈的压入与弹出
题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序 ...
- Highcharts 环境配置
Highcharts 环境配置 本章节我们将为大家介绍如何在网页中使用 Highcharts. Highcharts 依赖于 jQuery,所以在加载 Highcharts 前必须先加载 jQuery ...