news 2026/10/4 9:03:11

MySQL--批量插入一百万条数据

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MySQL--批量插入一百万条数据

原文网址:MySQL--批量插入一百万条数据-CSDN博客

简介

本文介绍向MySQL批量插入一百万条数据的方法。

表结构:

CREATE TABLE `t_goods` ( `id` bigint NOT NULL COMMENT '主键', `name` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '商品名字', `description` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '商品描述', `unit_price` decimal(10,2) DEFAULT NULL COMMENT '商品单价', `stock_quantity` int DEFAULT NULL COMMENT '库存数量', `create_time` datetime NOT NULL COMMENT '创建时间', `update_time` datetime NOT NULL COMMENT '修改时间', `create_id` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '创建人ID', `create_name` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '创建人名字', `update_id` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '修改人ID', `update_name` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '修改人名字', `delete_flag` bigint NOT NULL DEFAULT '0' COMMENT '删除标记。0:未删除;其他:已删除', PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='商品管理';

法1:存储过程

# 选定数据库 use qingzhou; # 删除原有存储过程 DROP PROCEDURE if EXISTS BatchInsert; # 声明存储过程的结束符号为$$ delimiter $$ # 创建存储过程。参数0:起始id;参数1:循环次数 CREATE PROCEDURE BatchInsert(IN initId INT, IN loopCount INT) BEGIN DECLARE tmpI INT; DECLARE tmpId INT; SET tmpI = 0; SET tmpId = initId; # 关闭自动提交事务,提高插入效率 set autocommit=0; WHILE tmpI < loopCount DO INSERT INTO `qingzhou`.`t_goods`(`id`, `name`, `description`, `unit_price`, `stock_quantity`, `create_time`, `update_time`, `create_id`, `create_name`, `update_id`, `update_name`, `delete_flag`) VALUES (tmpId, (CONCAT('鼠标', tmpId)), '蓝牙鼠标', 10.00, 200, '2024-07-12 08:55:10', '2024-07-12 08:55:46', NULL, NULL, NULL, NULL, 0); SET tmpId = tmpId + 1; SET tmpI = tmpI + 1; END WHILE; COMMIT; END$$; # 结束符恢复为默认的分号 delimiter ; -- 界定符复原为默认的分号 # 调用存储过程 CALL BatchInsert(1, 1000000); # 删除存储过程 DROP PROCEDURE if EXISTS BatchInsert;

我用的Windows本机的MySQL,用Navicat执行此存储过程用了79秒。

执行时,右下角的“查询时间”一直在增加,直到结束才停止。

法2:用代码

用MyBatis-Plus的saveBatch。(它内部会进行拆分,每1000条数据插入一次)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/4 8:59:41

Claude Code卡顿排查攻略:读懂Spinner状态与根因定位

我盯着终端里那个转动的圈圈&#xff0c;已经整整三分钟了。Claude Code 又卡住了——准确地说&#xff0c;它看起来是卡住了&#xff0c;Spinner 一直匀速转&#xff0c;既不报错也不出结果。这种状态想必每位用过 CLI 版 AI 编程工具的人都碰到过&#xff0c;烦人之处在于你完…

作者头像 李华
网站建设 2026/10/4 8:57:31

鸿蒙 ACL 权限申请踩坑:差点白交一批,最后 3 项一次通过

直接说结论&#xff1a;**鸿蒙上不是所有「看起来像受限」的权限都要申请 ACL&#xff1b;真正要走 ACL 的只有 3 项&#xff0c;我一次申请、全部通过。**但在这之前&#xff0c;我差点因为「凭印象申请」&#xff0c;把一批根本不用交的权限白交上去。 如果你也准备鸿蒙上架、…

作者头像 李华
网站建设 2026/10/4 8:57:01

番茄小说/起点中文网 AI 写作约攻略(2026)

越来越多的作者开始用 AI 辅助创作&#xff0c;但签约率参差不齐。核心原因不是"能不能用 AI"&#xff0c;而是"怎么用 AI"。这篇攻略详解主流平台签约要求和 AI 辅助创作的实战技巧。 一、主流平台签约要求对比平台类型签约门槛收益模式AI 态度番茄小说免…

作者头像 李华
网站建设 2026/10/4 8:55:33

Hermes Agent中chrome-devtools高token消耗原理与优化策略

1. 这不是Bug&#xff0c;是设计选择&#xff1a;Hermes Agent里chrome-devtools工具为何独占76.5%的token消耗你刚在终端里跑起Hermes Agent&#xff0c;还没执行任何实际任务&#xff0c;--verbose日志里就赫然跳出一行&#xff1a;[token_usage] chrome-devtools: 76.5% of …

作者头像 李华
网站建设 2026/10/4 8:52:59

OpenShell:面向非专业用户的图形化命令行前端工具

1. OpenShell 是什么&#xff1f;它不是 Shell&#xff0c;也不是“开源 Shell”的简称OpenShell 这个名字在当前技术社区里确实容易引发第一反应的误判——很多人看到它&#xff0c;下意识会联想到“Open Source Shell”&#xff08;开源 Shell&#xff09;&#xff0c;或者以…

作者头像 李华
网站建设 2026/10/4 8:52:03

JavaEE学生成绩管理系统课设包:从跑通到二次开发实战指南

简介&#xff1a;这是一套基于JSP、Servlet、JDBC与MySQL技术栈实现的学生成绩管理系统完整源码包&#xff0c;面向Java Web初学者、课程设计者及毕业设计开发者&#xff0c;帮助解决教务场景下学生、教师、管理员三类角色的信息管理需求。系统集成MD5加密算法&#xff0c;代码…

作者头像 李华