MySql插入百万级数据的几种方法

article/2025/6/26 13:20:33

有时候我们在开发环境需要模拟生产环境中百万级甚至千万级的数据量,以测试相关代码的性能时,这时候我们就需要向表中快速插入大批量的数据,怎么插入呢?一般常用的有三种方法,如下:

1.通过存储过程插入

如果我们想简单快速的插入大批量数据,存储过程是个不错的选择,下面这个存储过程,是我向表xxx_audit_order中插入100万条数据,耗时25秒左右,这里建议:
1.插入数据前先把表中的索引去掉,数据插入完成之后,再创建索引
2.关闭事务的自动提交
以上两点对提高速度很有帮助,因为索引的维护以及每次插入都提交事务是很耗时间的

在这里插入图片描述

use test_db;
DROP PROCEDURE if EXISTS BatchInsert;
delimiter $$
CREATE PROCEDURE BatchInsert(IN initId INT, IN loop_counts INT)
BEGINDECLARE Var INT;DECLARE ID INT;SET Var = 0;SET ID = initId;set autocommit=0; -- 关闭自动提交事务,提高插入效率WHILE Var < loop_counts DOINSERT INTO `xxx_audit_order` (`product_no`,`xxx_channel_code`,`business_no`,`xxx_product_id`,`xxx_product_name`,`xxx_audit_no`,`xxx_audit_status`,`inspection_report_no`,`audit_report_no`,`re_audit_count`,`inspector_id`,`remark`,`delete_dt`,`create_by`,`create_dt`,`update_by`,`update_dt`,`xxx_link`,`service_standard_no`,`depth_inspection`,`execute_channel`,`seller_type`) VALUES (CONCAT('20220704', 100000000000 + ID),106,'RS20190719143225916727',26958,'荣耀 Play',CONCAT('C0', 512201907191454553491 + ID),FLOOR(RAND()*10) % 4,'R1152109544189558784','R1152216911870734336',2,0,null,0,6532,UNIX_TIMESTAMP() + ID ,0,Now(),FLOOR(RAND()*10) % 3,'',0,1,null);SET ID = ID + 1;SET Var = Var + 1;END WHILE;COMMIT;
END$$;delimiter ;  -- 界定符复原为默认的分号
CALL BatchInsert(1, 1000000);  -- 调用存储过程

2.通过应用代码插入

也就是说通过在应用代码中(我们自己造数据的测试代码)使用MySQL的batch insert方式插入:

insert into table(id,col) values(1,'foo'),(2,'bar')

注意分批提交的大小,1000条插入一次还是3000条插入一次,也是会影响性能的

3.通过MySQL自带的mysqlImport工具

即使用load data通过文件导入


http://chatgpt.dhexx.cn/article/ELffx19d.shtml

相关文章

mysql插入并更新(on duplicate key update)

Mysql插入数据&#xff0c;如果存在此数据&#xff0c;那么就更新这条数据&#xff0c;否则插入数据。 使用 on duplicate key update。 准备工作 建表 create table user_info(id int auto_increment primary key,name varchar(20),user_code varchar(20) unique not null…

[笔记]MySQL 插入导致死锁

线上遇到的 MySQL 插入导致死锁,问题排查. 场景复现 MySQL 版本: 5.7.36 数据库存储引擎: InnoDB 事务隔离级别: REPEATABLE-READ 1. 创建测试表 DROP TABLE IF EXISTS tb_task; CREATE TABLE tb_task (id int(11) NOT NULL AUTO_INCREMENT,task_id int(11),order_id int(1…

mysql插入数据中文_mysql插入中文数据的方法

mysql插入中文数据的方法 发布时间&#xff1a;2020-09-04 09:26:29 来源&#xff1a;亿速云 阅读&#xff1a;92 作者&#xff1a;小新 小编给大家分享一下mysql插入中文数据的方法&#xff0c;相信大部分人都还不怎么了解&#xff0c;因此分享这篇文章给大家参考一下&#xf…

python操作mysql插入数据

python操作mysql插入数据 首先安装pymysql这个库pycharm连接数据库操作mysql语句连接数据库插入数据 由于有时候&#xff0c;数据存在excel表格中&#xff0c;需要借助python去读取数据然后再插入到数据库中 首先安装pymysql这个库 pycharm连接数据库 这一步可要可不要&#…

python+mysql插入数据

mysql数据处理之插入数据 目的 实现数据插入到mysql&#xff0c;比如我们需要插入1w数据到数据&#xff0c;可以通过这种方式插入&#xff0c;或者也可以将python 自动化的数据&#xff0c;报存到数据库中。 1、连接数据库 import pymysql import os import time class dat…

MySQL插入汉字报错的解决方案

MySQL插入汉字报错的原因是字符集的问题&#xff0c;MySQL默认使用的是Latin&#xff08;拉丁文&#xff09;字符集&#xff0c;可以在创建数据库时指定其字符集&#xff1a;CREATE DATABASE test DEFAULT CHARACTER SET utf8 或者修改MySQL的配置文件&#xff0c;可以参考以下…

公众号涨粉神器“易拉宝”上线啦!快速增加精准粉丝

涨粉、涨粉、涨粉&#xff01; 这从来都是公众号运营一个老大难的问题。 相信有很多小主们都在运营公众号&#xff0c;每天为了少得可怜的新增粉丝而发愁。没办法&#xff0c;流量入口都被大号占据了&#xff0c;当然很难获得粉丝。 我们经常能在朋友圈、微信群里看到“粉丝…

50行代码实现的艺术签名设计微信小程序,轻松对接公众号,涨粉神器,学习赚钱两不误.微信公众号引流工具.html,python学习小项目.艺术签名设计微信小程序,前端学习小项目有趣的项目

50行代码实现的艺术签名设计微信小程序,轻松对接公众号,涨粉神器,学习赚钱两不误 先看效果 这个小程序实现艺术签名设计的功能 对接到公众号之后,相当于给你的公众号添加了一个功能,别人关注公众号后,可以从自定义菜单中设计艺术签名 (我一个搞后台开发的,布局确实做得很low,…

前端工程师的一大神器——puppeteer

大家好&#xff0c;我是若川。欢迎加我微信 ruochuan12&#xff0c;长期交流学习。今天推荐神器puppeteer&#xff0c;我猜有挺多人不知道。文章不长&#xff0c;看完有空也可以试玩。 我18年也写过一篇puppeteer爬取生成pdf的文章&#xff0c;时间真快。前端使用puppeteer 爬虫…

自制炒股盯盘神器——python实现GUI版本

有公众号粉丝在后台反馈&#xff1a;问能不能做一个可以在Windows环境下运行的GUI窗口&#xff0c;用来完成盯盘的功能。经过这几天的调试&#xff0c;现在这个小工具的基本功能已经初步调试完毕。下面就来看看它长什么样子吧&#xff1a; 主界面 主界面比较简单&#xff0c;只…

二十一个微信公众号推广技巧

微信营销说起来门槛很低&#xff0c;人人都可以做&#xff0c;门槛又很高&#xff0c;做到很好&#xff0c;需要很多的资源和投入&#xff0c;不说别的&#xff0c;要推广公众号&#xff0c;发展用户就是挑战&#xff0c;例如微信认证需要500用户是个门槛。也许你会抱怨为什么&…

gitbook 入门教程之还在搞公众号互推涨粉?gitbook 集成导流工具,轻轻松松躺增粉丝!...

相信大多数博客作者都或多或少有过这样想法: 现在各种平台这么多,想要实现全平台发布就要到处复制粘贴,等我有空一定做统一平台一次性全部解决! 不知道正在阅读文章的你,有没有这样的想法? 反正我确实这么想过,甚至 github 上相关项目早已创建,可一直迟迟没有下一步,要么是工作…

相见恨晚的IDEA热部署神器 JRebel

点击蓝色“java大数据修炼之道”关注我哟加个“星标”&#xff0c;每晚21:00&#xff0c;一起学技术来源: github.com/judasn/IntelliJ-IDEA-Tutorial/blob/master/jrebel-setup.md 作者: duanluanPart1JRebel 介绍 在 Java Web 开发中&#xff0c; 一般更新了 Java 文件后要手…

这5个摸鱼神器太火了!程序员:知道了快删!

这届打工人最喜欢的两个词 除了下班&#xff0c;就是摸鱼 鲁迅曾说过&#xff1a;要想成为一名合格的打工人 摸鱼是必备技能之一 △ 图源网络&#xff0c;如侵删 适&#xff08;放&#xff09;当&#xff08;空&#xff09;摸&#xff08;自&#xff09;鱼&#xff08;己&#…

gitbook 入门教程之还在搞公众号互推涨粉?gitbook 集成导流工具,轻轻松松躺增粉丝!

相信大多数博客作者都或多或少有过这样想法: 现在各种平台这么多,想要实现全平台发布就要到处复制粘贴,等我有空一定做统一平台一次性全部解决! 不知道正在阅读文章的你,有没有这样的想法? 反正我确实这么想过,甚至 github 上相关项目早已创建,可一直迟迟没有下一步,要么是工…

单条视频播放超6000万,涨粉24万,撒狗粮也能轻松上热门?

在如今这个CP满天飞的时代&#xff0c;“无CP&#xff0c;无流量”似乎已成为金科玉律&#xff0c;不少沙雕网友常调侃&#xff1a;我可以单身&#xff0c;但我的CP一定要结婚。 在这样的粉丝经济背景下&#xff0c;也催生出了不少情侣KOL&#xff0c;他们都曾凭借在短视频中的…

卧槽,又一款Python神器

写Python代码最头疼的两件事是什么&#xff1f;我总结了两点 1、Windows 平台安装第三方包经常失败的问题&#xff0c;还记得第一次安装mysql依赖包时的那个场景吗&#xff1f;怎么都装不上。 2、虚拟环境切换的问题&#xff0c;如果我们同时在一台电脑上开发多个项目&#xff…

教培企业如何引流增粉?

教育培训行业&#xff0c;经过2020年疫情的影响&#xff0c;开始与互联网加速融合&#xff0c;以在线教育这个模式迅速出圈。 在线教育&#xff0c;可以突破时间和地域的限制&#xff0c;将优质的教育资源通过互联网和线上工具&#xff0c;触达更多区域更大范围的用户&#xf…

神器DeskGo!

本文&#xff0c;给大家带来一款超级良心的桌面整理工具&#xff0c;文末有下载方式&#xff01; 使用电脑过程中&#xff0c;一直都存在一个令人矛盾的问题--文件是否放在桌面。 对于我来说&#xff0c;喜欢把各种各样的东西放在桌面&#xff0c;这对于使用过程中寻找文件带来…

月均200wUP主活跃的B站涨粉密码是什么?

本篇关键词&#xff1a;B站、UP主、涨粉、内容创作 B站是Z世代高度聚集的文化社区和视频平台。越来越多UP主加入构建出一个源源不断产出浓厚Z世代气息的多元文化社区。月均活跃UP主数量达200万的B站&#xff0c;UP主们如何实现粉丝的长效增长&#xff1f; 风格创作的魔力 B站…