1.常规方法,利用executemany批量更新数据(数据量小用这个就够了)

import pymysql
import pandas as pd
conn = pymysql.connect(host = '127.0.0.1',user = 'root',passwd = '123456',db = 'company_new',port=3306,charset = 'utf8'
)
cursor = conn.cursor()io = r'C:\Users\admin\Downloads\修复后的数据.xlsx'
arr=pd.read_excel(io, sheet_name = 0,usecols = 'A,AA,AI,AJ,AK,AL', nrows = 100,converters={'approved_time':pd.to_datetime,'operation_start_time':pd.to_datetime,'operation_end_time':pd.to_datetime})
order = ['approved_time', 'registry_address', 'business_scope', 'operation_start_time', 'operation_end_time','id']
arr = arr[order]
update_data=np.array(arr).tolist()print('开始更新')
sql = 'UPDATE x_credit_enterprise_to_fixed SET approved_time = (%s),registry_address=(%s),business_scope = (%s),operation_start_time=(%s),operation_end_time = (%s) WHERE id = (%s)'
try:res = cursor.executemany(sql, update_data)print('res',res)conn.commit()
except Exception as e:print(e)conn.rollback()
finally:conn.close()

2.高效方法,通过python拼接sql语句,只需要执行一次sql。(一万条数据一两秒就能更新完)

sql语句

UPDATE my_table SETname = CASE idWHEN 1 THEN 'luck'WHEN 2 THEN 'zhang3'WHEN 3 THEN 'li4'END,age = CASE idWHEN 1 THEN 18WHEN 2 THEN 28WHEN 3 THEN 38END
WHERE id IN (1,2,3)

通过python拼接sql语句

import pymysql
import pandas as pd
conn = pymysql.connect(host = '127.0.0.1',user = 'root',passwd = '123456',db = 'company_new',port=3306,charset = 'utf8'
)
cursor = conn.cursor()
io = r'C:\Users\admin\Downloads\修复后的数据.xlsx'
arr=pd.read_excel(io, sheet_name = 0,usecols = 'A,AA,AI,AJ,AK,AL', nrows = 1000,converters={'approved_time':pd.to_datetime,'operation_start_time':pd.to_datetime,'operation_end_time':pd.to_datetime})sql='UPDATE x_credit_enterprise_to_fixed SET'
idList=tuple(arr['id'])
for l,item in enumerate(arr):if(not item=='id'):sql+=' '+item+'= CASE id'for index,el in enumerate(arr[item]):sql+=' WHEN '+str(arr["id"].loc[index].tolist())+' THEN \'%s\''%(str(el))if(l<arr.shape[1]-1):sql+=' END,'else:sql+=' END'
sql+=' WHERE id IN '+str(idList)try:res = cursor.execute(sql)conn.commit()print(res)
except Exception as e:print(e)conn.rollback()
finally:conn.close()

批量更新mysql数据(万条数据秒完成)相关推荐

  1. 利用python脚本一键为MySQL插入万条数据

    运行环境:Windows 10 技术栈:python3,MySQL8.x 编写目的 MySQL是我们研究开发时最常用的关系型数据库.当需要向MySQL数据库中插入大量数据时,一次一条地插入显然不得劲. ...

  2. 教你急速快速批量插入1000万条数据到mysql数据库表面试题

    急速快速批量插入1000万条数据到mysql数据库表面试题 教你急速快速批量插入1000万条数据到mysql数据库表&面试题 我用到的数据库为,mysql数据库5.7版本的 1.首先自己准备好 ...

  3. java mysql 快速插入1000w条数据_教你88秒插入1000万条数据到mysql数据库表

    我用到的数据库为,mysql数据库5.7版本的 1.首先自己准备好数据库表 其实我在插入1000万条数据的时候遇到了一些问题,现在先来解决他们,一开始我插入100万条数据时候报错,控制台的信息如下: ...

  4. Java怎么实现几十万条数据插入(30万条数据插入MySQL仅需13秒)

    本文主要讲述通过MyBatis.JDBC等做大数据量数据插入的案例和结果. 30万条数据插入插入数据库验证 实体类.mapper和配置文件定义 User实体 mapper接口 mapper.xml文件 ...

  5. mysql 单表2000多万条数据,模糊查询如何秒回

    mysql 单表数据2000多万,没有分区.没有表.没有分库,表存储的是企业信息,例如:企业名称.经营范围.注册地址等信息.现在需要通过关键词模糊匹配企业名称,搜索出匹配的数据.因为模糊匹配,所以直接 ...

  6. 批量往mysql里面插入1000万条数据_绝对干货,教你4分钟插入1000万条数据到mysql数据库表,快快进来...

    我用到的数据库为,mysql数据库5.7版本的 1.首先自己准备好数据库表 其实我在插入1000万条数据的时候遇到了一些问题,现在先来解决他们,一开始我插入100万条数据时候报错,控制台的信息如下: ...

  7. mysql 插入秒_教你88秒插入1000万条数据到mysql数据库表,IG牛逼

    我用到的数据库为,mysql数据库5.7版本的首先自己准备好数据库表 其实我在插入1000万条数据的时候遇到了一些问题,现在先来解决他们,一开始我插入100万条数据时候报错,控制台的信息如下: com ...

  8. MySQL一次查几万条数据,【mysql】一次插入几万条数据应该怎么做优化

    刚刚去面试,面试官提问了我一次插入几万条数据有什么优化方法,一次更新几万条数据有什么优化方法,这些我之前都没有用过,希望大家给我解一下惑. 回答 1.insert批量执行,禁止单条insert val ...

  9. 绝对干货,教你4分钟插入1000万条数据到mysql数据库表,快快进来

    我用到的数据库为,mysql数据库5.7版本的 1.首先自己准备好数据库表 其实我在插入1000万条数据的时候遇到了一些问题,现在先来解决他们,一开始我插入100万条数据时候报错,控制台的信息如下: ...

最新文章

  1. 「珍藏」老司机为你推荐10个炫酷的开源库,看完的人都收藏了
  2. C#设置Cookies
  3. 无序数组求第k大的数 python_整数无序数组求第K大数
  4. 我的第一个C#版GDI+程序
  5. 洛谷1231 教辅的组成
  6. 控件不响应点击事件解决办法
  7. JavaFX鼠标移动事件
  8. 第三节:深度剖析各类数据结构(Array、List、Queue、Stack)及线程安全问题和yeild关键字
  9. python中argument函数_PythonStudy——函数的参数 Function argument
  10. 不插电的计算机科学百度云,【精品】不插电的计算机科学.pdf
  11. 深入浅出之正则表达式(一)(转)
  12. hdu 5919 主席树保留区间数的种类数目
  13. win8优化(win8优化大师设置开始界面)
  14. 手电筒安卓_王思聪吃热狗数字时钟安卓apk下载安装ios现在
  15. 按自己的思想写商业计划
  16. 世园会开幕式上的机器人_小胖机器人驻扎“2019北京世园会”媒体分会场
  17. 苹果电脑可以装windows系统吗_苹果电脑MacBook双系统安装好后,如何下载Windows支持组件?...
  18. 红蜻蜓截图工具在win7下保存截图为png失败
  19. Semantic Proximity Search on Heterogeneous Graph by Proximity Embedding
  20. 无迹卡尔曼滤波UKF_代码及调参(2)

热门文章

  1. 区块链软件开发公司 区块链的基本原理
  2. 科达视频系统设置服务器,科达KDV-VS视频录像点播系统用户手册.doc
  3. opencv_模板匹配
  4. JDBC连接数据库6个步骤
  5. nohup命令原理解析
  6. Java 核心技术 - JVM
  7. PCIe PCS sublayer
  8. 余世维 - 老板首先要诚实
  9. 不堪回首的真实往事:我和一个骗子网友的两年矛盾纠葛
  10. 报错:“export ‘default‘ (imported as ‘mui)‘ was not fount in ‘../lib/mui/js/mui-min.js‘