加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_宿迁站长网 (https://www.0527zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2022-12-15 14:05:11 所属栏目:MsSql教程 来源:互联网
导读: 有时候我们在开发环境需要模拟生产环境中百万级、千万级的数据量,以测试相关代码的性能时,这时候我们就需要向表中快速插入大批量的数据,怎么插入呢?一般常用的有三种方法,如下:
1.通

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

1.通过存储过程插入

如果我们想简单快速地插入大批量数据,存储过程是个不错的选择,下面这个存储过程,是向表xxx_audit_ord中插入100万条数据,耗时25秒左右(表结构简单会更快),这里建议:

1.插入数据前先把表中的索引去掉,数据插入完成之后,再创建索引

2.关闭事务的自动提交

以上两点对提高速度非常有帮助,因为索引的维护以及每次插入都提交事务是很耗时间的!

执行存储过程

-- 存储过程如下
use test_db;
DROP PROCEDURE if EXISTS BatchInsert;
delimiter $

CREATE PROCEDURE BatchInsert(IN initId INT, IN loop_counts INT)
BEGIN
    DECLARE Var INT;
    DECLARE ID INT;
    SET Var = 0;
    SET ID = initId;
    set autocommit=0; -- 关闭自动提交事务,提高插入效率
    WHILE Var 
    END WHILE;
    COMMIT;
END$;
delimiter ;  -- 界定符复原为默认的分号
CALL BatchInsert(1, 1000000);  -- 调用存储过程

2.通过应用代码插入

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

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

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

3.通过MySQL自带的mysqlImport工具

即使用load data通过文件导入

(编辑:云计算网_宿迁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!