C++/MySQL,在1执行中插入200个数据点数组 我是一个关于C++和mysql的新手,所以如果答案相对简单,我在高级阶段道歉,但是到目前为止我还没有找到任何(工作)的解决方案,虽然我知道必须有。

C++/MySQL,在1执行中插入200个数据点数组 我是一个关于C++和mysql的新手,所以如果答案相对简单,我在高级阶段道歉,但是到目前为止我还没有找到任何(工作)的解决方案,虽然我知道必须有。,c++,mysql,arrays,logging,C++,Mysql,Arrays,Logging,我正在尝试将传感器中的数据记录到Raspberry上的本地主机MySQL数据库中。为了保持良好的性能,应该只在一次执行中将多个数据点写入SQL数据库。目前,我正在使用此方法处理50个信号点/秒: { i = 0; j = 1; k = 1; /* Creating pstmt statement*/ pstmt = con->prepareStatement("INSERT INTO signal_" +da

我正在尝试将传感器中的数据记录到Raspberry上的本地主机MySQL数据库中。为了保持良好的性能,应该只在一次执行中将多个数据点写入SQL数据库。目前,我正在使用此方法处理50个信号点/秒:

{
        i = 0;
        j = 1;
        k = 1;

        /* Creating pstmt statement*/
        pstmt = con->prepareStatement("INSERT INTO signal_" +day+ "_" +month+ "_" +year+ "(id, signal) VALUES (?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?)");

        /* Inserting 50 values */
        while (i < 50)
        {
            /* Insert ID integer (j = location, index[i]) */
            pstmt->setInt(j, index[i]);
            k = j + 1;

            /* Insert signal integer (k = location, signal[i]) */
            pstmt->setInt(k, signal[i]);
            j = j + 2;
            i++;
        }

        /* Execute pstmt using set values */
        pstmt->execute();
    }
{
i=0;
j=1;
k=1;
/*创建pstmt语句*/
PSMTT=con->PSMTT=con->准备阶段(“插入信号中的插入信号+日+月+月+年+年+“(id,信号)信号)价值(?,,,,(,,,(,(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?),(?, ?)");
/*插入50个值*/
而(i<50)
{
/*插入ID整数(j=位置,索引[i])*/
pstmt->setInt(j,索引[i]);
k=j+1;
/*插入信号整数(k=位置,信号[i])*/
pstmt->setInt(k,信号[i]);
j=j+2;
i++;
}
/*使用设置值执行pstmt*/
pstmt->execute();
}
*当第一个数组写入SQL时,第二个数组将被填满,然后第二个数组将被写入SQL,第一个数组将再次被填满

这个例子适用于单个数据点和索引,但如果我想将数据扩展到200点/秒,并包含时间戳,它将变得非常混乱


所以我的问题是:是否有一种简单的方法可以一次性将整个数组插入MySQL数据库?(最终目标是一个10列200行/秒的数组,如果性能足够好,但至少是50行/秒)

经过适当的研究,我找到了一种将数组插入MySQL的方法:

void log_the_data()

int i ;
string query, insert;
for (i=0 ; i < 50 ; i++)
{
    fprintf(f_log,"%ld %d %s %ld%s\n",nr_pts++,data[i],t_string,packet_counter,s_status);
    stringstream ss;
    ss << "(" << nr_pts << "," << data[i] << ",'" << t_string << "'),";
    insert = ss.str();
    query += insert;
}
query.erase (query.end()-1);

pstmt = con->prepareStatement("INSERT INTO test(id, signal, time) VALUES " +query+ "");
pstmt->execute();
fflush(f_log) ;
clear_my_buffer() ;
void log\u\u\u数据()
int i;
字符串查询、插入;
对于(i=0;i<50;i++)
{
fprintf(f_日志,“%ld%d%s%ld%s\n”,nr_pts++,数据[i],t_字符串,数据包计数器,s_状态);
细流ss;
党卫军