您的位置:首页 > 数据库 > MySQL

为windows下的mysql产生大量测试数据

2016-08-27 21:16 423 查看
参考了这篇文章http://bbs.chinaunix.net/thread-4244844-1-1.html ,不过这篇文章只支持linux,windows下并不支持,特做补充。

创建临时数据表tmp_series

create table tmp_series(id int,primary key(id));

 

用python生成100w记录的数据文件

python -c "for i in range(1,1+1000000): print(i)">100w.txt

 

也可以直接用bash做,但bash的方式要比python慢得多

[chenhj@localhost ~]$ i=1;while [ $i -le 1000000 ];do echo $i ;let i+=1; done >100w.txt

【补充】个人认为应该是bash是每循环一次写一次,python是生成的结果在内存中,一次写入,极大地提高了速度。

导入数据到tmp_series表

mysql> load data infile '/home/chenhj/100w.txt' replace into table tmp_series;

Query OK, 1000000 rows affected (9.66 sec)

Records: 1000000 Deleted: 0 Skipped: 0 Warnings: 0

【补充】

1.win下面路径是类似“F:/datax/datax/100w.txt”

2.由于操作系统的差异,win下python直接生成的文件是UCS-2 LE BOM格式的,mysql居然不认。100w条数据可以直接用noteoad++改成utf-8的。如果数据量更大notepad++打不开,那只能通过脚本实现了。

创建测试数据表

create table tb1(id int,c1 int,c2 varchar(100),primary key(id))

 

通过tmp_series表生成并插入测试数据,测试数据的计算方法可以自由发挥。
mysql> insert into tb1 select id,round(rand()*100000),concat('testdatatestdatatestdata',id) from tmp_series;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql 测试 数据