新增百万测试数据之 程序语言+导入功能
程序员文章站
2024-03-19 23:10:10
...
场景
XX的APP上线了,现需要一百万个学员的信息进行压力测试,那么数据从哪里来呢?直接找开发人员帮忙?可能会被鄙视!一条一条去insert?嗯,算了下大概需要20年!
不用怕,接下来教你一百种方法高效创建100万数据!
下面是XX APP中的一个学生成绩表,
表结构很简单,id是主键,自增长唯一标识一个学生,sName是每个学生的昵称,phone是手机号码,还有一个让我们既爱又恨的分数字段score。附建表SQL:
drop table if exists tb_lemon_student_score;create table tb_lemon_student_score(
id int primary key auto_increment,
sName varchar(50),
phone varchar(11),
score tinyint(1));
第二种方法:程序语言生成数据,使用工具进行导入
我们的思路是这样的,通过程序语言生成约定规则的百万数据,保存到文本文件中,再使用Navicat For MySQL强大的导入功能,将百万数据导入到数据库中
1:JAVA编程:写一个生成数据的应用程序
打开Eclipse,编写如下代码:
import java.util.Random;public class BatchInsertTest {
public static void main(String[] args) {
Random random = new Random();
for (int i = 1; i <= 1000000; i++) {
// 学员的id
int id = i;
// 学员的姓名
String sName = "s_" + i;
// 手机号码
long mobile = 13000000000L + i;
// 分数
int score = random.nextInt(100);
System.out.println(id + "|" + sName + "|" + mobile + "|" + score);
}
}}
程序说明:程序使用for循环,向控制台循环输出100万条学生信息,每行表示一个学生信息,规则为:id从1到100w,sName为s_拼接上id值,手机号13000000000+id值,分数0到100随机整数,各个字段间采用分隔符“|”进行分割(这个分隔符在导入数据到数据库时有用)。
运行该JAVA应用程序,如图所示:
程序可以正常向控制台输出我们要求的数据,但是行数是有限的,默认Eclipse控制台显示行数是有限的,这个行数是可以调整的,但是百万行文本数据的拷贝这是非常耗资源的,所以介绍另外一种更高效的方法,可以直接把我们控制台的输出全部保存到指定的文件中。
2:将程序输出保存到指定文件
1)右键JAVA类->选择Run As ->选择Run Configurations
2)选择Run Configurations界面的Common项->勾选Output File->选择File System设置保存文件的位置,这里设置为桌面的data.txt文件:C:\Users\tommy\Desktop\data.txt
3)再次运行程序,能够看到在桌面上生成了一个data.txt文件,打开文件内容如下,一共100万行:
3:Navicat For MySQL导入文本数据
右键数据表,选择导入向导,选择导入类型为txt,进行一系列的导入设置后,开始导入:
注意:尤其注意要设置中间的的分隔符为竖线"|"大概一分钟后,导入结束。
最后,select抽查,数据已经符合我们的要求了
推荐阅读