很多时候为了测试数据库设计是否恰当,优化SQL语句,需要在表中插入大量的数据,怎么插入大量的数据就是个问题了。
最开始想到的办法就是写一个程序通过一个很大的循环来不停的插入,比如这样:
[SQL] 纯文本查看 复制代码
1
2
3
4
5
|
int i = LOOP_COUNT;
while(i -->=0){
// insert data here.
}
|
不过我在这么做的时候发现这样插入数据非常的慢,一秒钟插入的数据量还不到100条,于是想到不要一条一条的插入,而是通过
INSERT INTO TABLE VALUES (),(),(),()...
这样的方式来插入。于是修改程序为:
[SQL] 纯文本查看 复制代码
1
2
3
4
5
6
7
8
9
|
int i = LOOP_COUNT;
StringBuilder stringBuilder;
while(i -->=0){
if(LOOP_COUNT!=i && i%5000==0){
//通过 insert values 的方式插入这5000条数据并清空stringBuilder
}
stringBuilder.append( "(数据)" );
}
//插入剩余的数据
|