Archive for the Tag '插入数据'

在MySQL中快速的插入大量测试数据.

很多时候为了测试数据库设计是否恰当,优化SQL语句,需要在表中插入大量的数据,怎么插入大量的数据就是个问题了。 最开始想到的办法就是写一个程序通过一个很大的循环来不停的插入,比如这样: int i = LOOP_COUNT; while(i–>=0){ //insert data here. } 不过我在这么做的时候发现这样插入数据非常的慢,一秒钟插入的数据量还不到100条,于是想到不要一条一条的插入,而是通过 INSERT INTO TABLE VALUES (),(),(),()… 这样的方式来插入。于是修改程序为: int i = LOOP_COUNT; StringBuilder stringBuilder; while(i–>=0){ if(LOOP_COUNT!=i && i%5000==0){ //通过insert values的方式插入这5000条数据并清空stringBuilder } stringBuilder.append(“(数据)”); } //插入剩余的数据 这样做的插入速度是上升了很多,不过如果想要插入大量的输入,比如上亿条,那么花费的时间还是非常长的。 查询MySQL的文档,发现了一个页面:LOAD DATA INFILE 光看这个名字,觉得有戏,于是仔细看了下。 官方对于这个命令的描述是: LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE ‘file_name’ [REPLACE | IGNORE] INTO TABLE tbl_name [CHARACTER [...]