PostgreSQL vs MySQL:1000万数据批量插入,谁能略胜一筹
创始人
2025-07-02 08:30:51
0

之前测试MySQL批量插入,发现慢的离谱,找了下原因,竟然是少了个参数,rewriteBatchedStatements=true。昨天《PostgreSQL vs MySQL - 30倍性能差异》这个原因也找到了,汗颜。

rewriteBatchedStatements介绍

rewriteBatchedStatements=true 是MySQL JDBC驱动程序中的一个连接属性,用于启用批量重写功能。它可以在执行批量插入操作时提高性能。

默认情况下,在JDBC中使用批量插入时,每个插入语句都会作为单独的请求发送到数据库服务器。但是,将 rewriteBatchedStatements 设置为 true 时,驱动程序会对批量插入语句进行重写和优化,将多个插入语句合并成一个批量语句,然后一次性发送给数据库服务器。

通过启用批量重写功能,可以减少与数据库服务器之间的通信开销和网络往返时间。此外,将多个插入语句合并为一个批量语句还可以减少数据库服务器上的查询计划优化和日志记录操作,从而提高整体性能。

需要注意的是,启用 rewriteBatchedStatements=true 并不总是能够带来显著的性能改进。它的效果取决于多个因素,包括数据量、网络延迟、数据库和系统配置等。在某些情况下,尤其是需要大量数据插入的场景,启用该选项可以明显提升性能。然而,在某些情况下,可能不会看到明显的性能改进或甚至性能下降。

连接参数修改

在连接之后加上rewriteBatchedStatements=true,如下:

String url = "jdbc:mysql://localhost/mydatabase?rewriteBatchedStatements=true";

测试结果

先插入少量数据:10万条。下述结果,耗时毫秒级被我省略了,所以针对10万的数据量插入,看不出大的差异。

每批数量

耗时

(第一轮)

耗时
(第二轮)

耗时
(第三轮)

耗时

(第n轮)

平均耗时

每秒写入速度

100

6s

6s

6s

……

6s

≈16666/s

500

4s

4s

4s

……

4s

≈25000/s

1000

4s

4s

4s

……

4s

≈25000/s

3000

4s

4s

4s

……

4s

≈25000/s

5000

4s

4s

4s

……

4s

≈25000/s

10000

4s

4s

4s

……

4s

≈25000/s

这个测试结果和昨天测试的PostgreSQL相当(符合预期)。

接下来测试一下1000w数据的耗时,并对比一下PostgreSQL的性能(代码均复用上篇)。

测试结果

每批数量

MySQL

PostgreSQL

每秒写入速度
(MySQL)

每秒写入速度
(PostgreSQL)

100

8m 43s

3m 36s

≈19120

≈46296

500

5m 26s

3m 37s

≈30674

≈46082

1000

4m 59s

3m 36s

≈33444

≈46296

3000

4m 42s

3m 35s

≈35460

≈46511

5000

4m 41s

3m 36s

≈35587

≈46296

10000

4m 35s

3m 38s

≈36363

≈45871

20000

4m 36s

3m 42s

≈36231

≈45045

结论

  • MySQL 批量插入时批量不同性能差异较大,PostgreSQL相对稳定。
  • 相同配置下PostgreSQL插入性能略具上风。
  • MySQL批量插入一定不能忘了加 rewriteBatchedStatements=true ,不然就像之前测试,就是搞笑的。

本数据只是个人测试,仅供参考,不同环境、场景、配置等因素下,结论可能都不一致,大家可根据实际情况进行测试。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...