1. 用c語言寫20萬條數據
#include<stdio.h> void pro_ID(char * str,int i){ if(i%17576==0){ ++*(str+1); *(str+2)=97; *(str+3)=97; *(str+4)=97; return ; } if(i%676==0){ ++*(str+2); *(str+3)=97; *(str+4)=97; return ; } if(i%26==0){ ++*(str+3); *(str+4)=97; return ; } ++*(str+4); return ; } int main(void){ FILE * fp; fp = fopen("C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/data.txt","a+"); if(fp == NULL ) return 0; char str[9]="\"aaaa\",\""; char str1[30]="\",\"TNT(1stik)\",\""; char str2[30]="\",\"TNTredsingle\""; int i=0,i1 =0 , i2 = 0; for(i = 1 ; i < 2000 ; i++){ pro_ID(str,i); fprintf(fp,"%s%d%s%.2f%s\n",str,1001,str1,5.99,str2); } return 0 ; }
2. mysql語句
load data infile "C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/data.txt" into table products fields terminated by ',' enclosed by '"' lines terminated by '\r\n';
實驗:直接用這個語句插入時候發現,2000條用了三秒的時間。需要改善
3. 20萬用了40秒
SET SESSION BULK_INSERT_BUFFER_SIZE = 256217728 ;
SET SESSION MYISAM_SORT_BUFFER_SIZE = 256217728 ;
load data infile "C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/data.txt" into table products fields terminated by ',' enclosed by '"' lines terminated by '\r\n';