简单实现pymysql批量写入数据方法

news/2024/7/19 11:50:16 标签: mysql, python, 爬虫

1、批量写入数据的方法

在日常处理数据的过程中,我们都有批量写入数据库的需求,使用pythonpymysqlmysql插入大量数据时,我们一般使用有两种方法:

  • 1、for + cursor.execute(sql),最后提交(commit())
  • 2、cursor.executemany(sql,list)

两种方法效率上和功能上有一定差异。20W条数据,使用第一种方法需要约1.5小时,使用第二种方法只需要10几秒,今天就记录一下使用executemany批量写入的简单方法。

2、cursor.executemany函数介绍

  • executemany()方法用于执行一条 SQL 语句,该 SQL 语句会执行多次,以实现一次操作多个数据,从而提高SQL的执行效率。
  • 和execute()方法不同的是,executemany()方法要求传入的参数是元组嵌套的列表,列表中每个元组代表一组数据,而元组中的每个值则代表一个数据的字段值。
  • 简而言之,就是executemany()方法实现了批量插入数据,可以使操作更加高效。

3、批量写入数据实现代码

python">import pymysql
# 连接数据库
conn = pymysql.connect(host='localhost', port=3306, user='root', password='123456', db='myDB')
# 创建游标对象
cursor = conn.cursor()
# 定义 SQL 语句
insert_sql = "INSERT INTO person VALUES (%s, %s, %s)"

# 定义数据
data = [
    ('1', '张三', 18),
    ('2', '李四', 19),
    ('3', '王五', 20)
]
# 批量插入数据
cursor.executemany(insert_sql, data)
# 提交
conn.commit()
# 关闭游标
cursor.close()
# 关闭连接
conn.close()

如上,批量插入数据,就是这么优雅而简单。

关键,还很高效!!!

4、注意事项

  • 如果插入值,包含null,则不必把null写入元组,在定义的时候写好,如:
python"># 定义 SQL 语句
insert_sql = "INSERT INTO person VALUES (null,%s, %s, %s)"
  • 批量删除
    举一反三,用法一样:
python"># 定义 SQL 语句
delete_sql = "DELETE FROM  WHERE id = %s"
# 定义数据
ids = [(1,), (2,), (3,)]
# 批量删除数据
cursor.executemany(delete_sql, ids)

http://www.niftyadmin.cn/n/402005.html

相关文章

{*zoom:1} 作用

zoom:1的常见作用: zoom是IE专用属性,firefox等是不支持的。它的本来作用是设置或检索对象的缩放比例,但这作用几乎用不到。 可以让网页实现IE7中的放大缩小功能。比如你想让你的网页缩小为原来的一半,那么就在body中加入style&…

quarkus:详细总结日志设置的方式

quarkus:详细总结日志设置的方式 一、日志级别二、运行时配置三、记录类别四、根记录器配置Root logger configuration五、记录格式六、替代控制台日志记录格式七、Log Handlers八、文件日志处理程序九、Syslog 日志处理程序十、使用示例十一、日志记录配置参考 一、…

「第 1 章」原来我们真的很菜!

第 1 章 原来我们真的很菜! 1.1 新人背景 大家好,我是“测试划水老师傅”。基于业务的增长和人力需求,但资金有限,领导给了1个“初级测试工程师”的招聘指标。好吧,创业公司就这样,紧着我一个有经验的人,使劲薅。经过为期2个礼拜的面试以及沟通,入职人员信息如下:张三…

编程艺术:深入探索Python函数的使用

在编程中,函数是一种重要的代码复用工具。它将一段具有特定功能的代码封装起来,使得我们可以在需要时重复使用这段代码,而不必每次都重写。在Python中,函数的定义和使用非常简单。在本文中,我们将介绍Python函数的定义…

C/C++基础讲解(一百零三)之经典篇(辗除法/统计字符个数/n个数的和)

C/C++基础讲解(一百零三)之经典篇(辗除法/统计字符个数/n个数的和) 程序之美 前言 很多时候,特别是刚步入大学的学子们,对于刚刚开展的计算机课程基本上是一团迷雾,想要弄明白其中的奥秘,真的要花费一些功夫,我和大家一样都是这么啃过来的,从不知到知知,懵懂到入门,…

Tomcat顶层架构、服务部署、虚拟主机配置

Tomcat顶层架构、服务部署、虚拟主机配置 一、Tomcat概述1、Tomcat介绍2、Tomcat三个核心组件3、Java Servlet4、JSP 二、Tomcat顶层架构三、Tomcat请求过程四、Tomcat服务部署1、关闭防火墙,将安装 Tomcat 所需软件包传到/opt目录下2、安装JDK3、设置JDK环境变量4、…

spring 设计分布式组件之网关

网关在分布式系统中充当的角色与其作用 1. 负载均衡器:网关可以作为负载均衡器,将来自客户端的请求分发到多个后端服务实例中,以提高系统的可用性和扩展性。 2. 安全代理:网关可以通过认证、鉴权、加密等机制,保障系…

从零开始的力扣刷题记录-第四十九天

力扣每日四题 163. 缺失的区间-简单1929. 数组串联-简单1304. 和为零的 N 个不同整数-简单2352. 相等行列对-中等总结 163. 缺失的区间-简单 题目描述: 给你一个闭区间 [lower, upper] 和一个 按从小到大排序 的整数数组 nums ,其中元素的范围在闭区间 …