1. 创建随机字符串函数,便于创建名称


  2. DROP function if EXISTS rand_string;
    #创建一个指定字符个数的函数
    create function rand_string(n INT)
    #返回字符串,注意:此处关键字是returns 而不是return
    returns varchar(255)
    BEGIN
    #定义一个临时变量,给变量赋值'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
    DECLARE chars_str varchar(100) DEFAULT 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    # 定义返回结果字符串
    DECLARE return_str varchar(255) DEFAULT '';
    DECLARE i int DEFAULT 0;
    WHILE i < n DO
    set return_str = CONCAT(return_str,SUBSTRING(chars_str,FLOOR(1+RAND()*52),1));
    set i=i+1;
    END while;
    RETURN return_str;
    END

    创建随机编号生成函数

    drop function if exists rand_num;
    CREATE function rand_num()
    returns int(5)
    BEGIN
    DECLARE i int default 0;
    set i = FLOOR(10+RAND()*500);
    return i;
    END
  3. 创建数据表 -- 部门表 dept

    drop table if EXISTS dept;
    create table dept (
    deptno MEDIUMINT UNSIGNED not null DEFAULT 0,
    dname varchar(20) default '',
    ioc varchar(13) default''
    ) ENGINE = myisam default CHARSET ='utf8';
    ALTER table dept add PRIMARY key(deptno);
  4. 创建数据表 -- 员工表 emp

    drop table if EXISTS emp;
    CREATE TABLE `emp` (
    `empno` mediumint(8) unsigned NOT NULL DEFAULT '0',
    `ename` varchar(20) NOT NULL DEFAULT '',
    `job` varchar(9) NOT NULL DEFAULT '',
    `mgr` mediumint(8) unsigned NOT NULL DEFAULT '0' COMMENT '上级编号',
    `hiredate` date NOT NULL COMMENT '入职日期',
    `salary` decimal(7,2) NOT NULL COMMENT '薪水',
    `comm` decimal(7,2) NOT NULL COMMENT '红利',
    `deptno` mediumint(8) unsigned NOT NULL DEFAULT '0' COMMENT '部门编号'
    ) ENGINE=MYISAM DEFAULT CHARSET=utf8;
  5. 创建插入测试数据的存储过程

    drop PROCEDURE IF EXISTS insert_emp ;
    
    CREATE PROCEDURE insert_emp (in start_no int(10),in max_num int(10))
    
    BEGIN
    DECLARE i int default 0;
    # 设置自动提交为false
    set autocommit =0;
    # 开启循环
    REPEAT
    set i = i+1;
    insert into emp values((start_no+i),rand_string(6),'SALESMAN',0001,CURDATE(),rand_num(),400,0002); UNTIL i=max_num
    END REPEAT;
    END
  6. 调用存储过程,生成百万数据

    call insert_emp(10000,10000000);

用MYSQL的存储过程创建百万级测试数据表的更多相关文章

  1. Sysbench测试神器:一条命令生成百万级测试数据

    1. 基准测试 基准测试(benchmarking)是性能测试的一种类型,强调的是对一类测试对象的某些性能指标进行定量的.可复现.可对比的测试. 进一步来理解,基准测试是在某个时候通过基准测试建立一个 ...

  2. 在mysql数据库中制作千万级测试表

    在mysql数据库中制作千万级测试表 前言: 最近准备深入的学一下mysql,包括各种引擎的特性.性能优化.分表分库等.为了方便测试性能.分表等工作,就需要先建立一张比较大的数据表.我这里准备先建一张 ...

  3. Oracle中创建千万级大表归纳

    从一月至今,我总共归纳了三种创建千万级大表的方案,它们是: 下面是这三种方案的对比表格: # 名称 地址 主要机制 速度 1 在Oracle中十分钟内创建一张千万级别的表 https://www.cn ...

  4. mysql中迅速插入百万条测试数据的方法

    对比一下,首先是用 mysql 的存储过程弄的: 复制代码代码如下: mysql>delimiter $ mysql>SET AUTOCOMMIT = 0$$ mysql> crea ...

  5. 在Oracle中快速创建一张百万级别的表,一张十万级别的表 并修改两表中1%的数据 全部运行时间66秒

    万以下小表做性能优化没有多大意义,因此我需要创建大表: 创建大表有三种方法,一种是insert into table selec..connect by.的方式,它最快但是数据要么是连续值,要么是随机 ...

  6. mysql如何快速创建相同结构的表

    [1]. 快速创建相同结构的表,包括索引: mysql> SHOW CREATE TABLE a; CREATE TABLE `a` ( `name` varchar(50) default N ...

  7. Mysql使用存储过程创建测试数据

    一.概述 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集.其存储在数据库中,经过第一次编译后调用不需要再次编译,用户通过指定存储过程的名字并给出 ...

  8. MySQL优化总结,百万级数据库优化方案

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  9. mysql用存储过程插入百万条数据, 及查询优化

    查看所有存储过程: show procedure status; 查看详细存储过程 ptest: show create procedure ptest; 存储过程插入数据: create table ...

随机推荐

  1. Vue.js项目在apache服务器部署后,刷新404的问题

    原因是vue-router 使用了路由的 history 模式,这种模式充分利用 history.pushState API 来完成 URL 跳转而无须重新加载页面. const router = n ...

  2. [白话解析] 深入浅出 极大似然估计 & 极大后验概率估计

    [白话解析] 深入浅出极大似然估计 & 极大后验概率估计 0x00 摘要 本文在少用数学公式的情况下,尽量仅依靠感性直觉的思考来讲解 极大似然估计 & 极大后验概率估计,并且从名著中找 ...

  3. kubespy 用bash实现的k8s动态调试工具

    原文位于 https://github.com/huazhihao/kubespy/blob/master/implement-a-k8s-debug-plugin-in-bash.md 背景 Kub ...

  4. 原型,原型链,给予原型和class的继承

    学习react的时候遇到了class方式的继承语法,原理和代码的解释很详细,值得一读. 原型每个函数(构造函数)都有一个 prototype 属性,指向该函数(构造函数)的原型对象.实例没有 prot ...

  5. Linux下Docker的安装与使用

    yum安装Docker最新版和docker-compose(超级简单的安装方法) Install Docker 首先安装依赖 yum install -y yum-utils device-mappe ...

  6. 【转】8 个效果惊人的 WebGL/JavaScript 演示

    英文原文:9 IMPRESSIVE WEBGL JAVASCRIPT EFFECT SHOWCASE,翻译:iteye WebGL 是一种 3D 绘图标准,这种绘图技术标准允许把 JavaScript ...

  7. 通过例子进阶学习C++(四)计算2的64次方,不服写写看

    ​ 本文是通过例子学习C++的第四篇,通过这个例子可以快速入门c++相关的语法. 1.乍一看题目非常简单,简单思考一下,可以通过for循环实现: #include <iostream> u ...

  8. PBFT && RBFT算法流程

    PBFT && RBFT算法流程以及其实现(上) 这篇文章主要是讲一下RBFT中共识算法流程以及节点的加入的流程.在下一篇博客中,将使用Java实现该算法. 传统的PBFT算法无法动态 ...

  9. hdu 5139 数据的离线处理

    所谓的数据离线处理,就是将所有的输入数据全部读入后,在进行统一的操作,这样当然有好处,比如让你算好多数的阶层,但是输入的每个数是没有顺序的,其实跟可以线性的解决,但是由于没有顺序的输入,这样处理的话复 ...

  10. NETCore下IConfiguration和IOptions的用法

    NETCore下IConfiguration和IOptions的用法 https://www.cnblogs.com/RainingNight/p/strongly-typed-options-con ...