zoukankan      html  css  js  c++  java
  • MySQL快速构造百万数据

    场景:测试工程师在开展压力测试或性能测试的时候,可能需要用到大量的数据用于测试。

    数据库:MySQL

    工具:Navicat

    启动本地MySQL数据库(管理员进入cmd命令行,输入命令: net start mysql),Navicat连接本地MySQL数据库。

    一、创建数据表

    在某个数据库里创建用于测试的数据表student,并设置主键id自增:

    create table student(
    id int(4) primary key not null auto_increment,
    sname varchar(32) not null,
    phone varchar(32) not null,
    score int(3) not null
    );

     执行以上sql语句,创建数据表,刷新可以查看新建的数据表:

     

    二、插入数据

    MySQL插入数据的基本语法为:

    INSERT INTO <表名> (字段1, 字段2, ...) VALUES (值1, 值2, ...);
    

     往student表中插入两条数据:

    INSERT INTO student (name, phone, score) VALUES ('test_1', '13000000000', 87),('test_2', '13000000001', 81);
    

     刷新后,发现表中会添加对应的记录:

    这里要说的使用 查询插入语句,语法如下:

    INSERT INTO <表名> (字段1, 字段2, ...) VALUES (值1, 值2, ...) SELECT 字段1, 字段2, ... FROM <表名>
    

     查询插入语句的作用是先查询,再把查询的结果插入。先试一下效果,执行如下命令:

    INSERT INTO student (sname, phone, score) SELECT sname,phone,score FROM student
    

     执行完刷新student表,会发现记录由原来的两条变成四条:

     

    实际上,执行查询插入语句后,数据记录条数会呈指数增长。那么多执行几次查询插入语句,就会得到想要的百万数据了。这里我只插入到10w级的记录:

    可以看到,已经有26w+记录了,暂时满足大数据量的需求了。

    三、更新数据

    数据量是满足了,但是数据真实性还有待提高。实际不会所有人的姓名、手机号、成绩都是一样的,因此需要对姓名、手机号、成绩字段记录进行修改。

    修改数据基本语法如下:

    UPDATE <表名> SET 字段1=值1, 字段2=值2;
    

    1、修改姓名:

    这里我们可以把姓名设置为 test_id 的格式,保证数据唯一性。test_id 的格式可以利用MySQL里的函 CONCAT 进行字符串拼接:

    UPDATE student SET sname = CONCAT('test_',id)
    

    执行完上述修改语句后,查询结果中,sname字段已经变成 test_id 格式了。

    2、修改手机号:

    手机号可以从13000000000开始,依次递增,比如设为13000000000+id:

    UPDATE student SET phone = 13000000000+id
    

    执行完上述语句,手机号就变成递增了,且保持唯一性。

    3、修改成绩:

    成绩的话,可以设为 0-100 之间的随机数,利用 MySQL 里的 RAND 函数生成随机数:

    UPDATE student SET score = RAND()*100
    

    注意:RAND()函数生成的是0-1的随机数,作为成绩,*100 即可。

     最终的数据如下,还算是比较真实的数据。

     

    至此,构造百万级数据就大功告成啦。

  • 相关阅读:
    Webkit是如何加载网页的
    代码无错是优? 工厂模式
    JavaScript 记忆 Memoization
    输入一个新的网址后到完全显示页面,浏览器做了哪些工作?
    向服务器请求数据的五种技术
    setTimeout(0) 即将退役
    JS 对象机制深剖——new 运算符
    正则表达式中的回溯
    闭包与柯里化
    正则表达式工作原理
  • 原文地址:https://www.cnblogs.com/Dahlia/p/11002808.html
Copyright © 2011-2022 走看看