首页 > 数据库 >mysql插入大量数据减少IO开销

mysql插入大量数据减少IO开销

时间:2024-03-29 15:34:07浏览次数:36  
标签:开销 数据 插入 VALUES IO mysql column1 column3 column2

前言

性能测试时需要模拟生产环境的数据量,在造百万、千万级数据的时候发现直接使用插入sql效率极低,推荐第四种快速的方式

插入mysql数据效率对比

1.单行插入

插入速度很普通,不推荐

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

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

insert into tableName(colunm1,colunm2,..) values(value1,value2...),(value1,value2...);
3.批量插入

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

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);
4.使用LOAD DATA INFILE语句
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);

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

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

标签:开销,数据,插入,VALUES,IO,mysql,column1,column3,column2
From: https://blog.csdn.net/T1798218285/article/details/137037296

相关文章

  • 使用Andorid Studio解决app内存泄漏问题方法与实践
    某项目的app运行一段时间(切换页面、触发交互事件等)后就开始严重卡顿,使用top查看内存的使用情况,发现每次操作过后内存都有小幅增长,且永远不下降,存在内存泄露问题。目录1AndoridStudio内存泄露检测工具使用方法2内存泄露实例分析2.1页面切换后未主动释放​编辑2.2回调......
  • MySQL存储过程和定时任务
    本文档主要介绍如何利用MySQL存储过程和Event事件结合起来,实现数据的定时处理工作1.创建数据表createtablet1(idint,namevarchar(30))2.创建存储过程 创建存储过程delimiter//CREATEPROCEDURE`insert_t1`()BEGINSETautocommit=0;INSERTINTOt1(id......
  • 【附源码】JAVA计算机毕业设计在线考研刷题系统(springboot+mysql+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展,计算机在教育领域的应用日益广泛。特别是在线教育平台,以其便捷性、灵活性和资源共享性受到了广大师生的青睐。近年来,考研热潮......
  • 【附源码】JAVA计算机毕业设计在线考试系统的设计与实现(springboot+mysql+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的迅猛发展和互联网的普及,传统的教育模式正面临着深刻的变革。在线考试系统作为教育信息化进程中的重要一环,正逐渐取代传统的纸质考试方......
  • MYSQL聚合函数
    DDLCREATETABLE`studentid`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'学号',`createDate`datetimeDEFAULTNULLCOMMENT'创建时间',`username`varchar(20)DEFAULTNULLCOMMENT'用户名',`pwd`varchar(36)DEFAULTNULLCO......
  • MySQL查询语句like_between_and_in
    数据表创建DDLCREATETABLE`student`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'学号',`creatDate`datetimeDEFAULTNULLCOMMENT'创建时间',`userName`varchar(20)DEFAULTNULLCOMMENT'用户名',`pwd`varchar(36)DEFAULTNULL......
  • 【附源码】JAVA计算机毕业设计在线考试答题系统(springboot+mysql+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着互联网技术的迅猛发展,教育信息化已成为现代教育发展的重要趋势。在线考试答题系统作为教育信息化的重要组成部分,能够打破传统考试的时间和空间限......
  • 【附源码】JAVA计算机毕业设计在线考试(springboot+mysql+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,传统的教育模式正在经历深刻的变革。在线教育以其灵活、便捷的特性受到了广大师生的青睐。在线考试作为在线教育的重要组成......
  • 【附源码】JAVA计算机毕业设计在线考试系统(springboot+mysql+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着信息技术的迅猛发展,教育领域正经历着深刻的变革。在线考试系统作为现代教育信息化建设的重要组成部分,已经逐渐成为各级教育机构优化考试流程......
  • 【附源码】JAVA计算机毕业设计在线考试系统(springboot+mysql+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的迅猛发展,传统的教育模式正面临着深刻的变革。在线考试系统作为教育信息化进程中的重要组成部分,其设计与开发逐渐受到广泛关注。在当前......