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

2016-8-27 pierre

参考了这篇文章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;

标签: 数据

发表评论:

Powered by emlog 陕ICP备15016021 sitemap