import pymysql
import time
db = pymysql.connect("IP","username","password","database",charset='utf8')
cursor = db.cursor()
#数据库中的字段只是我自己的,可以根据所用字段自己进行测试。
#期格式要进行日期格式化,这一点还没找到好的方法处理
cursor.execute("""
  SELECT
  shop_name,
  receiver_area,
  receiver_address,
  date_format(pay_time,'%Y-%m-%d %H-%i-%s'),
  buyer_nick,
  receiver_name,
  receiver_mobile
  FROM detial limit 15000 """)
#此处是显示全部要入库的数据
data = cursor.fetchall() 
start = time.time()
#批量插入语句
cursor.executemany("""insert into d1
  (shop_name,receiver_area,receiver_address,pay_time,buyer_nick,receiver_name,receiver_mobile)
  values (%s,%s,%s,%s,%s,%s,%s)"""data) #批量更新插入数据 on duplicate key update 跟要更新的数据 必须要有主键 cursor.executemany("""insert into d1
  (shop_name,receiver_area,receiver_address,pay_time,buyer_nick,receiver_name,receiver_mobile)
  values (%s,%s,%s,%s,%s,%s,%s)
  on duplicate key update receiver_name = values (receiver_name)""",data)

#必须要执行此操作才能写入到数据库
db.commit() 
cursor.close()
db.close()
end =time.time()
print(end -start) # 如果是处理后的DataFrame类型的数据如果只是替换数据或者只是插入而不更新可以用下面的方式直接入库,
如果是替换,则会出现更改数据库字段格式。慎用!
conn = create_engine('mysql+pymysql://username:password/@ip:3306/database',encoding='utf8')

pd.io.sql.to_sql(deal_result, "sales", conn ,if_exists='append',index=None)

#如果是DataFrame类型的数据,利用元组转换,转换成多维元组,然后就可以通过普通的方式将数据插入或者更新到数据库中
data = tuple(map(tuple, data.values))

#目前只用到批量插入,和判断是否存在数据,如果存在就更新数据,否则就插入,以后用到别的继续更新,
只是基础的方法,并未封装函数,或者封装类。

python中pymysql executemany 批量插入数据的更多相关文章

  1. sql 中的Bulk和C# 中的SqlBulkCopy批量插入数据 ( 回顾 and 粗谈 )

    通常,我们会对于一个文本文件数据导入到数据库中,不多说,上代码. 首先,表结构如下.   其次,在我当前D盘中有个文本文件名为2.txt的文件. 在数据库中,可以这样通过一句代码插入. Bulk in ...

  2. C#中的SqlBulkCopy批量插入数据

    在C#中,我们可以使用sqlBulkCopy去批量插入数据,其他批量插入方法不在讨论. 1 /// <summary> 2 /// SqlBulkCopy批量插入数据 3 /// < ...

  3. Python中pymysql基本使用

    Python中pymysql模块通过获取mysql数据库命令行游标执行数据库命令来进行数据库操作 优点:操作数据库语句所见即所得,执行了什么数据库语句都很清楚 缺点:操作繁琐,代码量多 1. pymy ...

  4. C#批量插入数据到Sqlserver中的四种方式

    我的新书ASP.NET MVC企业级实战预计明年2月份出版,感谢大家关注! 本篇,我将来讲解一下在Sqlserver中批量插入数据. 先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的 ...

  5. C#批量插入数据到Sqlserver中的三种方式

    本篇,我将来讲解一下在Sqlserver中批量插入数据. 先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的是GUID,表中没有创建任何索引.GUID必然是比自增长要快的,因为你生 成 ...

  6. C#_批量插入数据到Sqlserver中的四种方式

    先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的是GUID,表中没有创建任何索引.GUID必然是比自增长要快的,因为你生成一个GUID算法所花的时间肯定比你从数据表中重新查询上一条记 ...

  7. C# 批量插入表SQLSERVER SqlBulkCopy往数据库中批量插入数据

    #region 帮助实例:SQL 批量插入数据 多种方法 /// <summary> /// SqlBulkCopy往数据库中批量插入数据 /// </summary> /// ...

  8. 用SqlBulkCopy批量插入数据到SqlServer数据库表中

    首先创建一个数据库连接类:SQLHelper using System; using System.Collections.Generic; using System.Linq; using Syst ...

  9. C# 之 批量插入数据到 SQLServer 中

    创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的是GUID,表中没有创建任何索引.GUID必然是比自增长要快.而如果存在索引的情况下,每次插入记录都会进行索引重建,这是非常耗性能的.如 ...

随机推荐

  1. (六)获取http状态码和处理返回结果

    int StatusCode = httpResponse.getStatusLine().getStatusCode(); 处理返回结果: /** * 处理返回结果 * @param respons ...

  2. Spring Boot 在启动时进行配置文件加解密

    Spring Boot Application 事件和监听器 寻找到application.yml的读取的操作. 从spring.factories 中查看到 # Application Listen ...

  3. Activity学习笔记1

    Activity概述 简单的理解Activity就是指Android手机或平板的一个屏,类似Window的一个窗口,浏览器的一个页面. Activity的4种状态 Activity的生命周期 创建Ac ...

  4. cute-cnblogs 一期样式原文

    cute-cnblogs 说明 "我经常有那种感觉,如果这个事情来了,你却没有勇敢地去解决掉,它一定会再来.生活真是这样,它会一次次地让你去做这个功课直到你学会为止." -- &l ...

  5. Linux性能优化思路

    性能测试的核心,就是找出性能瓶颈并进行性能优化,解决"慢"的问题,最终满足客户业务需求. [性能需求来源及性能问题现象] 性能需求的来源,主要分为以下几类: 项目组提出性能需求: ...

  6. 一文梳理JavaScript中的this

    最近零零碎碎看了许多关于this的文章,本着"好记性不如烂笔头"的思想,特在这里整理一下this有关的知识点.[长文警告!!!] 接下来,笔者将按照以下目录对this进行阐述: t ...

  7. 【Java】HashMap实现原理---数据结构

    作为一个程序猿,特别是Java后端的,应该全部人都用过HashMap,也都知道HaspMap是一个用于存储Key-Value键值对的集合.与此同时我们把每一个键值对也叫做 Entry. 而这些Entr ...

  8. [ C++ ] 勿在浮沙筑高台 —— 拾遗

    explicit 主要用于处理一个参数的构造函数,使其不用于隐式类型转换(防止二义性) operator->() C++设计 ->可以一直保留下去 仿函数 仿函数会隐式继承他们中的一个(详 ...

  9. 小师妹学JVM之:java的字节码byte code简介

    目录 简介 Byte Code的作用 查看Byte Code字节码 java Byte Code是怎么工作的 总结 简介 Byte Code也叫做字节码,是连接java源代码和JVM的桥梁,源代码编译 ...

  10. CLR垃圾收集器

    CLR GC是一种引用跟踪算法,大致步骤如下: 1.暂停进程中所有的线程: 2.标记阶段,遍历堆中的所有对象,标记为删除,然后检查所有活动根,如果有引用对象,就标记那个对象可达,否则不可达: 3.GC ...