[英]Improve large query insert performance using MySQL
我写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()
和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合适的设置
我想在代码或更改方式中有一些东西可以加快查询速度
您可以通过这种方式一次插入多行
http://dev.mysql.com/doc/refman/5.5/en/insert.html
使用VALUES语法的INSERT语句可以插入多行。 为此,请包括多个列值列表,每个列值括在括号内并用逗号分隔。 例:
插入tbl_name(a,b,c)值(1,2,3),(4,5,6),(7,8,9);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.