我写c ++做30000 * 30000查询MySQL插入
实施例
for(i=0;i<30000*30000;i++){
// do the MySQL insert
call the function to insert code (maybe just query insert the i value)
}
我正在使用mysqlsart()
和mysqlclose()
子功能
void mysqlstart()
{
//MYSQL *conn_ptr;
conn_ptr = mysql_init(NULL);
if(!conn_ptr)
{
fprintf(stderr,"mysql_init failed\n");
//return EXIT_FAILURE;
}
conn_ptr = mysql_real_connect(conn_ptr,"localhost","root","nlpgroup","testdb",0,NULL,0);
}
void mysqlclose()
{
mysql_close(conn_ptr);
}
我第一次调用函数
mysqlstart();
for loop
mysqlclose();
这在开始时会很棒,几天后我发现错误:MySQL服务器已经消失
从互联网上找到一些解决方案可能会更改max_allowed_packet或其他一些......
而且我不知道什么是适合30000 * 30000的设置
我希望在我的代码或方法中可以更改某些内容以加快查询速度
答案 0 :(得分:1)
您可以这种方式一次插入多行
http://dev.mysql.com/doc/refman/5.5/en/insert.html
使用VALUES语法的INSERT语句可以插入多行。至 执行此操作,包括多个列值列表,每个列值都包含在其中 括号并用逗号分隔。例如:
INSERT INTO tbl_name(a,b,c)VALUES(1,2,3),(4,5,6),(7,8,9);