通常来说C++操作MySQL的时候,往Mysql中插入10000条简单数据,速度非常缓慢,居然要5分钟左右,

而打开事务的话,一秒不到就搞定了!

具体实现代码如下:

#include

#include

#include

#include "mysql.h"

#pragma comment(lib, "libmysql.lib");

using namespace std;

int main()

{

MYSQL mysql;

mysql_init(&mysql); // 初始化

MYSQL *ConnStatus = mysql_real_connect(&mysql,"localhost","root","","sky",3306,0,0);

if (ConnStatus == NULL)

{

// 连接失败

int i = mysql_errno(&mysql);

string strError= mysql_error(&mysql);

cout <

return 0;

}

cout<

string strsql;

MYSQL_RES *result=NULL; // 数据结果集

// 插入操作

strsql = "insert into t1 values(2,'lyb')";

mysql_query(&mysql,"START TRANSACTION"); // 开启事务, 如果没有开启事务,那么效率会变得非常低下!

for (int i=0; i<10000; i++)

{

mysql_query(&mysql,strsql.c_str());

}

mysql_query(&mysql,"COMMIT"); // 提交事务

cout<

//释放结果集 关闭数据库

mysql_free_result(result);

mysql_close(&mysql);

mysql_library_end();

return 0;

}

总结:

在针对大量数据的插入,更改等操作时,应该开启事务,待一连串的操作结束之后,再提交事务,可提高程序执行效率。

本文标题: C++操作MySQL大量数据插入效率低下的解决方法

本文地址: http://www.cppcns.com/ruanjian/c/111106.html

c mysql 插入大量数据_C++操作MySQL大量数据插入效率低下的解决方法相关推荐

  1. c语言mysql自动重连接_c++操作mysql数据库

    就拿查询MySQL获取结果集并在页面上显示数据为例来分析. HTTP请求由C级别的程序比如Apache/Nginx处理(Java的HTTP服务用的是Java开发的Tomcat等), PHP则调用内置在 ...

  2. PHP访问mysql的常用函数,PHP操作MySQL数据库常用函数

    PHP操作MySQL数据库常用函数 php操作mysql数据库,俗称天龙八步: 第一步:连接数据库 第二步:判断连接错误 第三步:选择数据库 第四步:设置字符集 第五步:准备SQL语句 第六步:执行并 ...

  3. .NET 使用 MySql.Data.dll 动态库操作MySql的帮助类--MySqlHelper

    .NET 使用 MySql.Data.dll 动态库操作MySql的帮助类--MySqlHelper 參考演示样例代码,例如以下所看到的: /// <summary>/// MySql 数 ...

  4. mysql: “Warning: Using a password on the command line interface can be insecure.“ 解决方法

    mysql: "Warning: Using a password on the command line interface can be insecure." 解决方法 参考文 ...

  5. python keyerror5种方法_Python操作dict时避免出现KeyError的几种解决方法

    在读取dict的key和value时,如果key不存在,就会触发KeyError错误,如: t = { "a": "1", "b": &qu ...

  6. SVN系列操作(二)svn不显示图标的解决方法

    SVN系列操作(二)&svn不显示图标的解决方法 参考文章: (1)SVN系列操作(二)&svn不显示图标的解决方法 (2)https://www.cnblogs.com/zymnst ...

  7. 操作无法完成错误0x0000709再次检查打印机名称解决方法!

    白雨青工作站发文地址:操作无法完成错误0x0000709再次检查打印机名称解决方法!-白雨青工作站 windows操作系统在连接共享打印机时会出现"操作无法完成错误0x0000709再次检查 ...

  8. '操作必须使用一个可更新的查询'解决方法

    原文:'操作必须使用一个可更新的查询'解决方法 当我们用ASP执行修改数据库记录操作时常会遇到以下问题 错误类型: Microsoft OLE DB Provider for ODBC Drivers ...

  9. 无法打开数据库 'msdb'。恢复操作已将该数据库标记为 SUSPECT解决方法

    我这边用的是腾讯云服务器,C盘才99G,一开始我安装数据库到C盘.网站运行一段时间后,数据库日志记录.ldf文件增长到20多G,C盘只剩下13G. 当时并不清楚,当我重启服务器的时候,打开数据库发现无 ...

最新文章

  1. maven-compiler-plugin
  2. 点击一次铵钮产生一个新文本框,分别输入值,然后获取
  3. data too long for column 'Auser' at row 1
  4. 状态码202_至少 10 个 HTTP 状态码
  5. AndroidStudio_使用gradle编译代码_打包apk_以及各种打包配置---Android原生开发工作笔记79
  6. [转载] Pytorch基础介绍
  7. 最新基于高德地图的android进阶开发(2)小试牛刀
  8. 人狠话不多,细说大牛直播SDK之RTMP播放器和RTSP播放器
  9. 二硫键交联的巯基化壳聚糖水凝胶/pH、离子强度敏感性的壳聚糖水凝胶CS-GA-ASP
  10. java数字货币转化_将数字货币金额转换为大写格式
  11. android psensor测试,android传感器Gsensor和Psensor的使用举例
  12. 渗透测试漏洞平台DVWA-参考答案
  13. [转载]Python中包装(wrapping)与代理(delegation)
  14. 软件测试 三角形问题
  15. 简单介绍pytorch中分布式训练DDP使用 (结合实例,快速入门)
  16. python实现labelme样本自动标注
  17. linux构建widi显示服务,如此简单 Intel WiDi无线高清设置教程
  18. 【Arduino实验09 外部中断触发报警】
  19. 中级计算机程序设计员,计算机程序设计员中级试卷A
  20. Android RIL学习

热门文章

  1. java中的class 类的作用_Java中Class和单例类的作用与类成员的理解
  2. bzoj3993 [SDOI2015]星际战争 二分答案+网络流检验
  3. 2017.10.13 硬币游戏 思考记录
  4. python求1到n的乘积_Python实现矩阵相乘的三种方法小结
  5. MFC获取文件夹下的所有文件名
  6. CSM中一些常见问题的解决方式
  7. python的枚举和for循环_python入门与进阶篇(三)之分支、循环、条件与枚举,python枚举...
  8. 程序员表白代码python_程序员python表白代码
  9. python打印表格_怎么使用python脚本实现表格打印?
  10. python socket多线程并发_【Python之旅】第五篇(三):Python Socket多线程并发