一、环境

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

两台机器是局域网

二、测试代码

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

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

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

三、测试数据

1、1核,单表,innoDB

每个线程插入条数 单线程耗时 线程数 总tps
10万 63s 1个 1500条
10万 78s 2个 2564条
10万 127s 4个 3149条
10万 224s 8个 3571条
10万 340s 12个 3529条

2、4核,单表,innoDB

每个线程插入条数 单线程耗时 线程数 总tps
10万 60s 1个 1666条
10万 64s 2个 3200条
10万 97s 4个 4123条
10万 195s 8个 4100条
10万 325s 12个 3600条

3、1核,16个表,MyISAM

每个线程插入条数 单线程耗时 线程数 总tps
2万 10s 1个 2000条
5000 2s 2个 5000条
5千 2s 4个 10000条
5千 5s 8个 8000条
5千 10s 16个 8000条

4、2核,16个表,MyISAM

每个线程插入条数 单线程耗时 线程数 总tps
2万 7s 1个 3000条
5000 2s 2个 5000条
5千 2s 4个 10000条
5千 5s 8个 8000条
5千 12s 16个 6666条

5、4核,16个表,MyISAM

每个线程插入条数 单线程耗时 线程数 总tps
2万 11s 1个 1176条
5000 3s 2个 3300条
5千 5s 4个 4000条
5千 11s 8个 3636条
5千 15s 16个 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核的低很多,这个很难解释。

mysql插入性能测试相关推荐

  1. Mybatis与JDBC批量插入MySQL数据库性能测试及解决方案

    Mybatis与JDBC批量插入MySQL数据库性能测试及解决方案 参考文章: (1)Mybatis与JDBC批量插入MySQL数据库性能测试及解决方案 (2)https://www.cnblogs. ...

  2. 【myISAM和innoDB】mySql的引擎myisam和innodb的区别/mysiam(mysql插入速度优化)

    目录 Myisam 和Innodb 特点和擅长 Myisam 和Innodb 数据存储区别 Myisam引擎(非聚集索引--叶子节点存储数据地址的指针) Innodb引擎(聚集索引---叶子节点的da ...

  3. Mycat批量插入性能测试

    本文采用mycat的values批量插入方式进行测试,连写的数据量达到8000左右事务提交可以达到每秒75000左右数据量,也证实了Mycat的效率是小于或等于Mysql的性能.在实际生产中,因为访问 ...

  4. python mysql批量insert数据、返回id_Python3 操作 MySQL 插入一条数据并返回主键 id的实例...

    Python 中貌似并没有直接返回插入数据 id 的操作(反正我是没找到),但是我们可以变通一下,找到最新插入的数据 #!/usr/bin/env python3 # -*- coding: UTF- ...

  5. mysql插入数据显示中文乱码

    MySQL 插入数据时,中文乱码问题的解决 当向 MySQL 数据库插入一条带有中文的数据形如 insert into employee values(null,'张三','female','1995 ...

  6. 解决向数据库mysql插入double数据小数点不显示问题

    解决向数据库mysql插入double数据小数点不显示问题 参考文章: (1)解决向数据库mysql插入double数据小数点不显示问题 (2)https://www.cnblogs.com/sovi ...

  7. MySQL 插入数据时,中文乱码问题的解决

    MySQL 插入数据时,中文乱码问题的解决 参考文章: (1)MySQL 插入数据时,中文乱码问题的解决 (2)https://www.cnblogs.com/sunzn/archive/2013/0 ...

  8. java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)...

    转载地址:http://www.devba.com/index.php/archives/4581.html java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明); ...

  9. mysql插入大量数据总结

    1 java实现 package cn.edu.nwsuaf.sheep2.utils;import java.sql.Connection; import java.sql.DriverManage ...

最新文章

  1. 【计算机视觉】EmguCV学习笔记(2)图像的载入、显示和输出
  2. python爬取豆瓣电影并分析_爬取豆瓣电影top250提取电影分类进行数据分析
  3. “写画”与“惊春”:王艾画展和当代诗人朗诵会
  4. ASP中事务处理资料收集
  5. sum(x) over( partition by y ORDER BY z ) 分析
  6. 转:Socket编程知识必学
  7. 机器学习——LightGBM
  8. 引commons-io工具类做文件的复制及导出
  9. Win7-64位 Cygwin编译Redis
  10. python 读取geotiff_python gdal 写GeoTiff文件
  11. Unite洛杉矶峰会精彩回顾:从图形、平台再到VR
  12. vmware虚拟机linux重置密码
  13. cin/cou效率太慢?试一下 ios::sync_with_stdio(false);
  14. 新建 FrameMaker API 时引用目录的设置
  15. MySQL优化那些事
  16. 科创人·派拉软件CEO谭翔:零信任本质是数字安全,To B也要深研用户心智
  17. 2021年创业项目:知识付费副业做网课赚钱
  18. 前端校验还是后端校验
  19. 解决Module build failed: Error: Cannot find module ‘node-sass‘Require stack
  20. 用户 'sa' 登录失败的解决方案

热门文章

  1. 第6章 见缝插圆(《C和C++游戏趣味编程》配套教学视频)
  2. 2020 年,Serverless 将给大前端带来什么样的变化?
  3. linux下qt加载boost,信号槽的实现实例—— Qt 和 Boost
  4. 微软拟禁用JIT提高Edge浏览器安全性
  5. 清华大学迎来中国首位原创AI虚拟学生;百度造车:定价20万元以上;亚马逊面临 7.5 万项仲裁|极客头条...
  6. 一行代码没写,凭啥被尊为“第一位程序员”?
  7. JavaScript:对象都是这样生成的!
  8. ​8次迭代5大升级,旷视天元1.0预览版正式发布
  9. 字节跳动推出企业技术服务平台“火山引擎”
  10. 一位 Rust 开发者的 Go 初体验