mysql插入性能测试

一、环境

vm虚拟机,centos7,MySQL5.7,jdk8

两台机器是局域网

二、测试代码

数据表:16个分表,表结构是20个字段,15个字段的长度是100个字符填充。

使用java直接连接数据库,用多线程测试,每个线程一个数据库连接,事务自动提交。每个线程完成批量插入后才关闭连接。

mysql没有进行线程优化,都是使用默认配置。

三、测试数据

1、1核,单表,innoDB

每个线程插入条数单线程耗时线程数总tps
10万63s1个1500条
10万78s2个2564条
10万127s4个3149条
10万224s8个3571条
10万340s12个3529条

 

 

 

 

 

2、4核,单表,innoDB

每个线程插入条数单线程耗时线程数总tps
10万60s1个1666条
10万64s2个3200条
10万97s4个4123条
10万195s8个4100条
10万325s12个3600条

 

 

 

 

 

3、1核,16个表,MyISAM

每个线程插入条数单线程耗时线程数总tps
2万10s1个2000条
50002s2个5000条
5千2s4个10000条
5千5s8个8000条
5千10s16个8000条

 

 

 

 

 

4、2核,16个表,MyISAM

每个线程插入条数单线程耗时线程数总tps
2万7s1个3000条
50002s2个5000条
5千2s4个10000条
5千5s8个8000条
5千12s16个6666条

 

 

 

 

 

5、4核,16个表,MyISAM

每个线程插入条数单线程耗时线程数总tps
2万11s1个1176条
50003s2个3300条
5千5s4个4000条
5千11s8个3636条
5千15s16个5333条

 

 

 

 

 

四、测试结论

1、在某些条件下MyISAM的插入效率比innoDB快。

2、连接数是服务器核数的两倍时,可获得最佳的插入性能。

3、多连接数时,InnoDB实例的tps是:2500-4100,MyISAM实例的tps是:3300-1万

4、Sysbench基准测试,10个线程,10个表,每个表插入10万条数据,结果如下:

五、理论

1、当服务器核数,数据库连接数,数据库内部线程数一样的情况下,多核应该是单核的倍数,但是测试时没有证明这点,可能是mysql线程配置不是最优的。

2、MyISAM时,4核的tps居然比2核的低很多,这个很难解释。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值