我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

本篇内容主要讲解“向MySQL中插入100万条数据需要多长时间”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“向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万条数据需要多长时间”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

目录