簡體   English   中英

使用MySQL改善大型查詢插入的性能

[英]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_pa​​cket或其他...

而且我不知道什么是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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM