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

C++向mysql批量插入数据 一、以下共统计了3种批量插入的方法: 1、普通方法:一条一条插入; 2、使用拼接语句一次性插入,拼接语句的语法如下: insert into table (col1,col2,col3) values (’a’,’b‘,’c‘), (’a1’,’b1‘,’c1‘),(’a2‘,’b2‘,’c2'),...... 对于拼接语句sql有一个长度限制:max_allowed_packet,查看限制最大值:show variables like ‘%max_allowed_packet%’,使用Navic 阅读详情

投稿:shichen2014 字体:[增加 减小] 类型:转载 时间:2014-07-25 我要评论

这篇文章主要介绍了C++操作MySQL大量数据插入效率低下的解决方法,需要的朋友可以参考下

通常来说C++操作MySQL的时候,往Mysql中插入10000条简单数据,速度非常缓慢,居然要5分钟左右,
而打开事务的话,一秒不到就搞定了!

具体实现代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <iostream>
#include <winsock2.h>
#include <string>
 
#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 << "Error info: " <<strError<<endl;
 
  return 0;
  }
 
 
  cout<< "Mysql Connected..." <<endl;
  
  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<< "insert end" <<endl;
 
  
  //释放结果集 关闭数据库
  mysql_free_result(result);
  mysql_close(&mysql);
  mysql_library_end();
 
  return 0;
}

总结:

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

VL53L1X vs VL53L0X:激光测距传感器选型指南与性能对比 本文深入对比了VL53L1X与VL53L0X两款激光测距传感器的核心差异。VL53L1X采用区域ToF原理,在抗环境光干扰、最大测距及多目标识别方面优势显著,尤其适合复杂光线与动态场景。文章结合机器人避障、无人机定高等实战场景,提供了清晰的选型决策树,帮助工程师根据测距需求、环境复杂度与系统成本做出最优选择。 阅读详情

相关推荐

DRM驱动架构浅析-上(DRM基础概要与U-Boot阶段驱动解析)

本文主要探讨了Rockchip平台的DRM显示驱动架构及其在U-Boot阶段的实现。

一路寒风身如絮,命海沉浮客独行 1762

c/c++批量向mysql插入数据

先给个MYSQL对于C的API 具体代码,改为手动提交,每次5W数据 //mysql所需的头文件和库文件 //mysql所需的头文件和库文件 #include "winsock.h" #include <Windows.h> #include <stdio.h> #include <st...

蚂蚁学Python 2538

通过HTTP的方式克隆GitHub上的项目

通过HTTP的方式克隆GitHub上的项目 打开想要下载的项目的网页链接,点击Clone or download绿色的按钮,进行如下步骤实现通过HTP的方式下载项目。 点击红色框圈出的位置: 打开想要存放项目的文件夹,在空白处点击鼠标右键,选择Git Bash Here,打开命令行。 输入git clone 复制的下载地址,回车进行下载。 4.正在下载的界面 5.下载完成。 技多不压身 哦耶✌✌✌ ...

weixin_37826412的博客 3201

mysql 如何快速写入大量数据

在开发过程中可能会遇到需要快速入库大量数据的场景。理论上来说通过批量写入应该能够快速的插入数据,但是实际过程中批量插入速度并不是很理想。接下来介绍一下优化常用的操作。文章主要内容参考介绍MySQL Jdbc驱动的rewriteBatchedStatements参数 - chenjianjx - 博客园。

abments的博客 4351

Rsoft仿真实战:长周期光纤光栅参数优化与模式耦合分析

本文详细介绍了使用Rsoft软件进行长周期光纤光栅(LPFG)参数优化与模式耦合分析的实战方法。通过Rsoft仿真,可以高效优化光栅周期、包层厚度等关键参数,深入分析纤芯模与包层模的耦合特性,为光纤通信和传感应用提供可靠的设计依据。

h0i1j2k3l的博客 1115

Minecraft Forge模组开发入门:从环境搭建到事件监听实战

事件驱动编程是一种基于事件和事件监听器的软件架构模式,其核心原理是通过事件总线实现组件间的松耦合通信。在游戏开发领域,这种模式能够有效处理玩家交互、状态变更等异步操作,具有高度的灵活性和可扩展性。Java作为面向对象编程语言,通过注解和反射机制为事件驱动提供了天然支持。Minecraft模组开发正是事件驱动编程的典型应用场景,开发者可以利用Forge框架提供的事件总线监听游戏内各种行为。本文以Minecraft Forge模组开发为例,详细讲解如何通过Gradle构建工具搭建开发环境,并实现自定义方块注册和

culi3182的博客 395

数据库mysql第一节

全列插入:insert into student values('值1',‘......') 值的数量必须和列的数量一致 备份数据库 mysqldump -uroot -p 数据库名 > python.sql mysqldump -uroot -p python > python.sql 备份数据表 mysqldump -uroot -p 数据库名 数据表名> python.sql ...

yzy_1117的博客 265

华为MA5620配置宽带及语音实例

华为EPON配置实例1、公共部分和宽带PPPOE部分用串口用户名密码root/mduadminMA5620E>enableMA5620E#configMA5620E(config)#MA5620E(config)#sysnamebigcow/给设备起名字/****之前为公共部一、建vlan和地址bigcow(config)#vlan100...

weixin_33862041的博客 6346

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 m...

weixin_33756596的博客 509

C#实战:如何从零构建一个轻量级软PLC梯形图编辑器(附完整源码)

本文详细介绍了如何使用C#从零开始构建一个轻量级软PLC梯形图编辑器。内容涵盖项目架构设计、GDI+图形渲染、编辑交互实现以及核心的扫描执行引擎开发,并提供了定时器、计数器等高级功能的实现思路与完整源码,为开发者深入工业自动化领域提供了实战指南。

4k5l6j7h8的博客 257

扫码登录原理

扫码登录功能通过PC端与移动端的交互实现安全认证,分为三个阶段:待扫描阶段生成唯一二维码ID并轮询状态;已扫描阶段移动端提交token与二维码ID关联,生成临时token并要求用户确认;确认阶段验证临时token后为PC端生成正式登录凭证。整个过程通过二维码唯一性、状态轮询和二次确认机制确保安全性,防止未授权登录,最终完成跨设备认证流程。

阿杰同学的博客 344

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 m...

weixin_30219823的博客 595

c++中,部署Ethercat IGH + PREEMPT_RT 环境,跑DC模式,如何实现?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 1356

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 m...

weixin_29025911的博客 784

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Huffman编码课程设计:从算法到文件压缩的工程实践

数据压缩的核心在于用更少的比特表示高频信息,Huffman编码通过构建带权路径长度最小的二叉树实现最优前缀编码。其原理是优先队列合并最小权值节点,生成平均码长最短的编码表。在工程实践中,该技术广泛应用于文件压缩、网络传输等领域。以Huffman编码课程设计为例,需掌握二叉树构建、优先队列、位运算及文件IO,实现从文本编码到二进制打包的完整压缩工具,并处理边界情况与性能优化。

weixin_33829657的博客 267

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

php mysql insert执行效率_C++_C++操作MySQL大量数据插入效率低下的解决方法,通常来说C++操作MySQL的时候, - phpStudy...

C++操作MySQL大量数据插入效率低下的解决方法通常来说C++操作MySQL的时候,往Mysql中插入10000条简单数据,速度非常缓慢,居然要5分钟左右,而打开事务的话,一秒不到就搞定了!具体实现代码如下:#include #include #include #include "mysql.h"#pragma comment(lib, "libmysql.lib");using namespa...

weixin_30613239的博客 191

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

MySQL connector/C++ 连接mysql效率低下解决

这个问题 说解决也不算是被解决了,只能是让数据库插入的时候不会有像直接插入一样有那么多的问题了。。 我的解决方法是 开启mysql的事务。 开始我也不知道是不是我的mysql配置优化的问题(WAMP统一安装,无限默认下一步的)。 在用PHP测试的时候插入的水平也和c++的效率是一个样的1秒钟才插入不到50条数据。 然后朋友的php lamp环境插入1w条数据也只用了0.01秒。 在网上百

kyou007的专栏 5330

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(&m...

weixin_30261255的博客 196

解决 C++ 操作 MySQL 大量数据插入效率低下问题

往 Mysql 中,插入10000条简单数据。速度很缓慢,竟然要5分钟左右, 可是打开事务的话。一秒不到就搞定了 代码: #include &lt;iostream&gt; #include &lt;winsock2.h&gt; #include &lt;string&gt; #include "mysql.h" #pragma comment(lib, "libmy...

weixin_34252686的博客 449
上一篇: 实现fopen支持中文的方法
下一篇: C/C++基础知识(最终篇)
流左沙
博客等级 码龄11年 46粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值