向MySQL中插入100万条数据需要多长时间

56次阅读
没有评论

共计 1004 个字符,预计需要花费 3 分钟才能阅读完成。

本篇内容主要讲解“向 MySQL 中插入 100 万条数据需要多长时间”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让丸趣 TV 小编来带大家学习“向 MySQL 中插入 100 万条数据需要多长时间”吧!

目录

1、多线程插入 (单表)

2、多线程插入 (多表)

3、预处理 SQL

4、多值插入 SQL

5、事务 (N 条提交一次)

多线程插入 (单表)

问:  为何对同一个表的插入多线程会比单线程快?  同一时间对一个表的写操作不应该是独占的吗?

答:在数据里做插入操作的时候,整体时间的分配是这样的:

1、多链接耗时(30%)

2、多发送 query 到服务器(20%)

3、多解析 query(20%)

4、多插入操作(10% * 词条数目)

5、多插入 index(10% * Index 的数目)

6、多关闭链接(10%)

从这里可以看出来,真正耗时的不是操作,而是链接,解析的过程。

MySQL 插入数据在写阶段是独占的,但是插入一条数据仍然需要解析、计算、最后才进行写处理,比如要给每一条记录分配自增 id,校验主键唯一键属性,或者其他一些逻辑处理,都是需要计算的,所以说多线程能够提高效率。

多线程插入 (多表)

分区分表后使用多线程插入。

预处理 SQL

普通 SQL:  即使用 Statement 接口执行 SQL

预处理 SQL:  即使用 PreparedStatement 接口执行 SQL

使用 PreparedStatement 接口允许数据库预编译 SQL 语句,以后只需传入参数,避免了数据库每次都编译 SQL 语句,因此性能更好。

多值插入 SQL

普通插入 SQL: INSERT INTO TBL_TEST (id) VALUES(1)

多值插入 SQL: INSERT INTO TBL_TEST (id) VALUES (1), (2), (3)

使用多值插入 SQL,SQL 语句的总长度减少,即减少了网络 IO,同时也降低了连接次数,数据库一次 SQL 解析,能够插入多条数据。

事务 (N 条提交一次)

在一个事务中提交大量 INSERT 语句可以提高性能。

1、将表的存储引擎修改为 myisam 2、将 sql 拼接成字符串,每 1000 条左右提交事务。

执行多条 SQL 语句,实现数据库事务。 

mysql 数据库  

多条 SQL 语句

10w 条数据大概用时 10s!

到此,相信大家对“向 MySQL 中插入 100 万条数据需要多长时间”有了更深的了解,不妨来实际操作一番吧!这里是丸趣 TV 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-28发表,共计1004字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)