mysql快速插入大量数据

这篇具有很好参考价值的文章主要介绍了mysql快速插入大量数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

最近做性能测试,需要模拟生产环境的数据量,在造百万、千万级数据的时候发现直接使用插入sql效率极低,百度了一翻,找到几种方式,但用下来还是有很快速的方式,推荐第四种

插入mysql数据效率对比

1.单行插入
insert into tableName (colunm1,colunm2,...) value(value1,value2,...);

没错,很普通的一条sql,插入速度也很普通,不推荐

2.多行插入
insert into tableName(colunm1,colunm2,..) values(value1,value2...),(value1,value2...);

有点点进度,但是不多,多行插入可以减少插入数据时的IO和网络开销,从而加快插入数据的速度。此方法适用于插入少量数据的情况,当插入数据量变大时,数据库连接可能会被打满

3.批量插入
INSERT INTO table_name (column1, column2, column3)
VALUES
(value1, value2, value3),
(value4, value5, value6),
......
ON DUPLICATE KEY UPDATE column1=VALUES(column1), column2=VALUES(column2), column3=VALUES(column3);

这个操作将所有插入放在一个事务中,并将其视为一个操作。此方法使用一次SQL查询来插入大量数据,因此减少了IO和网络开销

4.使用LOAD DATA INFILE语句
LOAD DATA INFILE 'file_name'
INTO TABLE table_name
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';

使用LOAD DATA INFILE语句可以将大量的数据快速地导入MySQL中。此方法适用于数据已存储在文件中的情况,您只需指定文件名和目标表即可导入数据。而且,此方法支持多线程操作,可在不阻塞数据库的同时并行地导入数据
说实话,这种方式非常香,亲测500W数据1分钟插入完成,推荐
file_name: 本地存储数据的文件
这个文件的数据需要先准备好,你也可以选择像我一样代码生成

  1. 首先,从数据库复制一条数据
    mysql批量添加数据,mysql,mysql,数据库
  2. 然后把复制出来的插入sql中value里的内容抠出来
  3. 抠出来的内容注意下是否有外键、主键,如果有要处理一下扣出来的内容,下面的例子是id是主键,我给去掉了,然后循环生成主键拼接上去,循环生成的值要符合数据库的字段定义类型
data = ",860272,'2023-07-26 18:00:03','2023-07-26 18:00:03',1,未完成,时,1,1时,219,85,1,001-001,0,9784,'2023-07-26 18:00:03',9784,'2023-07-26 18:00:03'"
with open('demo.txt', 'w+', encoding='utf-8') as f:
    for i in range(0, 1000000):
        f.write(str(i + 1) + data + '\n')
  1. 执行后生成demo.txt文件,每一行不同的值逗号分隔
    mysql批量添加数据,mysql,mysql,数据库
  2. 最后,连接数据库,可以使用命令连接,也可以借助工具连接,执行命令
LOAD DATA LOCAL INFILE 'E:\\demo.txt' INTO TABLE 表名
FIELDS TERMINATED BY ',' ('列名1','列名2','列名3','列名4')

注意:你的txt的值要跟命令中的列名对应上,如果你是全字段的值插入,那么('列名1','列名2','列名3','列名4')可以省略不写

好了,可以享受插入数据的快乐了…文章来源地址https://www.toymoban.com/news/detail-715801.html

到了这里,关于mysql快速插入大量数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL 数据库表格创建、数据插入及获取插入的 ID:Python 教程

    要在MySQL中创建表格,请使用\\\"CREATE TABLE\\\"语句。 确保在创建连接时定义了数据库的名称。 示例创建一个名为 \\\"customers\\\" 的表格: 如果上述代码没有出现错误,那么您已成功创建了一个表格。 您可以通过使用\\\"SHOW TABLES\\\"语句列出数据库中的所有表格来检查表格是否存在: 示例返

    2024年02月05日
    浏览(52)
  • MySql数据库实现数据存在则更新,不存在则插入

    1.存在则更新(不影响其他字段),不存在则插入 如上语句的意思的意思是如果字段1不存在(主键,索引或者唯一条件不存在),则执行插入语句,存在则执行更新语句,该更新只更新需要的字段,不影响其他字段的值; 2.存在则更新(先删除后更新),不存在则插入 如上

    2024年02月15日
    浏览(38)
  • POI:从Excel文件中读取数据,向Excel文件中写入数据,将Excel表格中的数据插入数据库,将数据库中的数据添加到Excel表

    POI是Apache软件基金会用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程序对Microsoft Office格式档案读和写的功能。POI为“Poor Obfuscation Implementation”的首字母缩写,意为“可怜的模糊实现”。 所以POI的主要功能是可以用Java操作Microsoft Office的相关文件,但是一般我

    2024年02月10日
    浏览(50)
  • Python将Excel文件插入Mysql数据库(脚本)

    🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️‍🌈 博客主页:一晌小贪欢的博客主页 👍 该系列文章专栏:Python办公自动化专栏 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏 ❤️ 欢迎各位佬关注! ❤️ 前言 最近接到一个

    2024年02月05日
    浏览(46)
  • MySQL数据库中对表进行创建,插入数据并对数据进行选择

    目录  1.根据此图进行建表并插入数据  2.对表进行以下操作 a:显示所有职工的基本信息 b:查询所有职工所属部门的部门号,不显示重复的部门号 c:求出所有职工的人数 d:列出最高工和最低工资 e:列出职工的平均工资和总工资 f:创建一个只有职工号、姓名和参加工作的新表,名

    2024年02月15日
    浏览(55)
  • mysql 大量数据插入优化

    对于一些数据量较大的系统,数据库面临的问题除了查询效率低下,还有就是数据入库时间长,当有大量数据需要插入数据库时(比如10万,50万,100万条数据),如果继续使用单条语句进行插入的话,会很影响数据库效率,因此,优化数据库插入性能是很有意义的,那么,怎么

    2023年04月08日
    浏览(43)
  • MySQL数据库——MySQL数据表添加字段(三种方式)

    MySQL 数据表是由行和列构成的,通常把表的“列”称为字段(Field),把表的“行”称为记录(Record)。随着业务的变化,可能需要在已有的表中添加新的字段。 MySQL 允许在开头、中间和结尾处添加字段。 一个完整的字段包括字段名、数据类型和约束条件。MySQL 添加字段的语

    2024年02月08日
    浏览(92)
  • 腾讯云-宝塔添加MySQL数据库

    1. 数据库菜单 2. 添加数据库 3. 数据库添加成功  4. 上传数据库文件   5. 导入数据库文件 6. 开启数据库权限 7. 添加安全组 (宝塔/腾讯云) 8. Navicat 连接成功

    2024年02月14日
    浏览(59)
  • MySQL 删除数据 批量删除(大量)数据

    在删除数据的时候根据不同的场景使用不同的方法,比如说删除表中部分数据、删除表的结构、删除所有记录并重置自增ID、批量删除大量数据等,可以使用delete、truncate、drop等语句。 类型 语句 删除全部/部分记录 delete from 表名 [where 条件]; 删除表的结构和数据 drop table [if

    2023年04月22日
    浏览(40)
  • 云原生数据仓库AnalyticDB Mysql(ADB分析型数据库)-DML语法之新增插入数据详解

    ADB分析型数据库,是阿里云平台上资源,原名叫云原生数据仓库AnalyticDB Mysql,俗称ADB分析型数据库,那么ADB的语法与mysql关系型数据库语法存在一定的差异。 本文为笔记,介绍ADB的DML语法的应用。 1. INSERT INTO INSERT INTO用于向表中插入数据,主键重复时会自动忽略当前写入数据

    2024年02月15日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包