向MySQL插入100w条数据,该怎么做?

本文探讨了三种向MySQL插入100万条数据的方法:使用存储过程、普通的JDBC单次插入以及事务批处理。通过对比,发现批处理事务提交在性能上显著优于直接循环插入和存储过程,尤其是在低版本MySQL驱动可能导致的问题上。
摘要由CSDN通过智能技术生成

使用MySQL存储过程插入

那么从sql层面上我们该怎么插入100万条数据呢,无脑直接写个循环?那就使用存储过程试试看吧

DROP PROCEDURE IF EXISTS proc_insert()
	DELIMITER $
	CREATE PROCEDURE pro_insert2()
 	BEGIN
    DECLARE i INT DEFAULT 1;
    WHILE i<=1000000 DO
    INSERT INTO student VALUES(i,'马老师','1970-02-02','广东深圳',60,60,60);
    SET i = i+1;
    END WHILE;
    END $

调用该存储过程后执行时间如下
在这里插入图片描述

JDBC往数据库中普通插入方式

同样先来个粗暴的100万次for循环,代码如下

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

/**
 * @author admin
 * @version 1.0.0
 * @ClassName InsertForDemo.java
 * @createTime 2020年12月06日 15:17:58
 */
public class InsertForDemo {
   
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
   

        long start = System.currentTimeMillis();
        Connection con = SqlTools.getConnection();
        System
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值