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 ...
随机推荐
- 雷林鹏分享:jQuery EasyUI 窗口 - 自定义窗口工具栏
jQuery EasyUI 窗口 - 自定义窗口工具栏 默认情况下,窗口(window)有四个工具:collapsible.minimizable.maximizable 和 closable.比如我 ...
- 如何下载一个物种的全部EST序列 | NCBI | 表达序列标签
EST:表达序列标签,expressed sequence tags . 顾名思义,很好理解,就是表达出来的序列,即从基因组DNA上表达出来的RNA,但是我们没法测序RNA,所以我们最终测的是表达序列 ...
- PHP单例模式 demo
<?php class single{ static public $db; private function __construct(){ }; static function getinst ...
- php字符串 统计个数
方法一 $arr=str_split($str); $arr=array_count_values($arr); /* * 方法二 * */ $arr = str_split($str); $a2 = ...
- spring boot(一)入门
什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员 ...
- mysql命令查询
含义 命令 查看gtid是否开启 show variables like '%gtid%'; 查看只读信息 show global variables like "%read_only%& ...
- 4月22 mysql常用函数
一.数学函数 数学函数主要用于处理数字,包括整型.浮点数等. ABS(x) 返回x的绝对值 SELECT ABS(-1) -- 返回1 CEIL(x),CEILING(x) 返回大于或等于x的最小整数 ...
- 在c++运行后出现PDB或者什么巴拉巴拉已经加载符号了的话
“stl常用排序算法.exe”(Win32): 已加载“E:\vs2015\project\stl常用排序算法\Debug\stl常用排序算法.exe”.已加载符号. “stl常用排序算法.exe”( ...
- MySQL 分页查询和存储过程
一.分页查询 使用limit函数,limit关键字的用法: LIMIT [offset,] rows: offset指定要返回的第一行的偏移量,rows第二个指定返回行的最大数目.初始行的偏移量是0( ...
- Git将本地项目上传到GitHub
本文转载于:https://segmentfault.com/a/1190000011909294 https://www.cnblogs.com/cxk1995/p/5800196.html 我们使 ...