DataBase_IsErrorOccur = FALSE;    if (NULL == mysql_init(&st_MySQL))
    {
        DataBase_IsErrorOccur = TRUE;
        DataBase_dwErrorCode = ERROR_HELPCOMPONENTS_DATABASE_MYSQL_CONNECT_MYSQL;
        return FALSE;
    }
    //设置连接超时
    if (0 != mysql_options(&st_MySQL,MYSQL_OPT_CONNECT_TIMEOUT,(char *)&nTimeOut))
    {
        DataBase_IsErrorOccur = TRUE;
        DataBase_dwErrorCode = ERROR_HELPCOMPONENTS_DATABASE_MYSQL_CONNECT_SETTIMEOUT;
        return FALSE;
    }
    //连接服务器
    if (NULL == mysql_real_connect(&st_MySQL,pSt_MySQLConnector->tszHostAddr,pSt_MySQLConnector->tszName,pSt_MySQLConnector->tszPassWord,pSt_MySQLConnector->tszDBName,pSt_MySQLConnector->nPort,NULL,0))
    {
        DataBase_IsErrorOccur = TRUE;
        DataBase_dwErrorCode = ERROR_HELPCOMPONENTS_DATABASE_MYSQL_CONNECT_ISFAILED;
        return FALSE;
    }
    //设置连接字符集,默认为utf8
    if (0 != mysql_set_character_set(&st_MySQL,"utf8"))
    {
        //如果设置字符集不成功,则关闭连接
        DataBase_IsErrorOccur = TRUE;
        DataBase_dwErrorCode = ERROR_HELPCOMPONENTS_DATABASE_MYSQL_CONNECT_SETCHAR;
        return FALSE;
    }
    if (0 != mysql_autocommit(&st_MySQL,0))
    {
        printf("数据库执行错误:%s\n",mysql_error(&st_MySQL));
        return FALSE;
    }
上面是链接代码,下面是插入代码,哪儿设置有问题 ,用不用批量提交都一样的效果! 怎么回事呢?    DataBase_IsErrorOccur = FALSE;
    pthread_mutex_lock(&st_csDatabase);
    //执行SQL语句
    static int i = 0;
    if (0 != mysql_query(&st_MySQL,lpszSQLQuery))
    {
        printf("数据库执行错误:%s,内容:\n%s\n",mysql_error(&st_MySQL),lpszSQLQuery);
        DataBase_IsErrorOccur = TRUE;
        DataBase_dwErrorCode = ERROR_HELPCOMPONENTS_DATABASE_MYSQL_EXEC_EXECUTE;
        pthread_mutex_unlock(&st_csDatabase);
        return FALSE;
    }
    if (i >= 10000)
    {
        mysql_commit(&st_MySQL);
        i = 0;
    }
    pthread_mutex_unlock(&st_csDatabase);
    return TRUE;

解决方案 »

  1.   

    就1000多条每秒 
    我还以为比 mysql_real_query 快的多 结果是一样的。
    INSERT INTO `data_session_2013-08-09` (`probe_id`,`src_mac`,`dst_mac`,`src_ip`,`dst_ip`,`src_name`,`dst_name`,`dst_equip_type`,`dst_app_id`,`ip_version`,`ip_tunnel`,`src_port`,`dst_port`,`proto_type`,`proto_sub_type`,`operation`,`log_type`,`log_level`,`opstatus`,`rule_id`,`group_id`,`rulekeyword`,`src_accounts`,`password`,`log_time`,`url`,`str_time`) VALUES('00110A63D088','94DE805033EA','001C54096111','192.168.16.240','183.60.3.126','233','183.60.3.126','0','0','0','0','39957','80','5','508','1','0','1','1','','','','5555555','','1375411294','web2.qq.com','2013-8-2 10:41:34')
      

  2.   

    试过了,差不到好多,而且LOAD DATA 算上阻塞时间和直接入库效率差不了多少!