c mysql 插入大量数据_C++操作MySQL大量数据插入效率低下的解决方法
通常来说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大量数据插入效率低下的解决方法相关推荐
- c语言mysql自动重连接_c++操作mysql数据库
就拿查询MySQL获取结果集并在页面上显示数据为例来分析. HTTP请求由C级别的程序比如Apache/Nginx处理(Java的HTTP服务用的是Java开发的Tomcat等), PHP则调用内置在 ...
- PHP访问mysql的常用函数,PHP操作MySQL数据库常用函数
PHP操作MySQL数据库常用函数 php操作mysql数据库,俗称天龙八步: 第一步:连接数据库 第二步:判断连接错误 第三步:选择数据库 第四步:设置字符集 第五步:准备SQL语句 第六步:执行并 ...
- .NET 使用 MySql.Data.dll 动态库操作MySql的帮助类--MySqlHelper
.NET 使用 MySql.Data.dll 动态库操作MySql的帮助类--MySqlHelper 參考演示样例代码,例如以下所看到的: /// <summary>/// MySql 数 ...
- 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." 解决方法 参考文 ...
- python keyerror5种方法_Python操作dict时避免出现KeyError的几种解决方法
在读取dict的key和value时,如果key不存在,就会触发KeyError错误,如: t = { "a": "1", "b": &qu ...
- SVN系列操作(二)svn不显示图标的解决方法
SVN系列操作(二)&svn不显示图标的解决方法 参考文章: (1)SVN系列操作(二)&svn不显示图标的解决方法 (2)https://www.cnblogs.com/zymnst ...
- 操作无法完成错误0x0000709再次检查打印机名称解决方法!
白雨青工作站发文地址:操作无法完成错误0x0000709再次检查打印机名称解决方法!-白雨青工作站 windows操作系统在连接共享打印机时会出现"操作无法完成错误0x0000709再次检查 ...
- '操作必须使用一个可更新的查询'解决方法
原文:'操作必须使用一个可更新的查询'解决方法 当我们用ASP执行修改数据库记录操作时常会遇到以下问题 错误类型: Microsoft OLE DB Provider for ODBC Drivers ...
- 无法打开数据库 'msdb'。恢复操作已将该数据库标记为 SUSPECT解决方法
我这边用的是腾讯云服务器,C盘才99G,一开始我安装数据库到C盘.网站运行一段时间后,数据库日志记录.ldf文件增长到20多G,C盘只剩下13G. 当时并不清楚,当我重启服务器的时候,打开数据库发现无 ...
最新文章
- maven-compiler-plugin
- 点击一次铵钮产生一个新文本框,分别输入值,然后获取
- data too long for column 'Auser' at row 1
- 状态码202_至少 10 个 HTTP 状态码
- AndroidStudio_使用gradle编译代码_打包apk_以及各种打包配置---Android原生开发工作笔记79
- [转载] Pytorch基础介绍
- 最新基于高德地图的android进阶开发(2)小试牛刀
- 人狠话不多,细说大牛直播SDK之RTMP播放器和RTSP播放器
- 二硫键交联的巯基化壳聚糖水凝胶/pH、离子强度敏感性的壳聚糖水凝胶CS-GA-ASP
- java数字货币转化_将数字货币金额转换为大写格式
- android psensor测试,android传感器Gsensor和Psensor的使用举例
- 渗透测试漏洞平台DVWA-参考答案
- [转载]Python中包装(wrapping)与代理(delegation)
- 软件测试 三角形问题
- 简单介绍pytorch中分布式训练DDP使用 (结合实例,快速入门)
- python实现labelme样本自动标注
- linux构建widi显示服务,如此简单 Intel WiDi无线高清设置教程
- 【Arduino实验09 外部中断触发报警】
- 中级计算机程序设计员,计算机程序设计员中级试卷A
- Android RIL学习
热门文章
- java中的class 类的作用_Java中Class和单例类的作用与类成员的理解
- bzoj3993 [SDOI2015]星际战争 二分答案+网络流检验
- 2017.10.13 硬币游戏 思考记录
- python求1到n的乘积_Python实现矩阵相乘的三种方法小结
- MFC获取文件夹下的所有文件名
- CSM中一些常见问题的解决方式
- python的枚举和for循环_python入门与进阶篇(三)之分支、循环、条件与枚举,python枚举...
- 程序员表白代码python_程序员python表白代码
- python打印表格_怎么使用python脚本实现表格打印?
- python socket多线程并发_【Python之旅】第五篇(三):Python Socket多线程并发