最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

MySQL插入性能测试_MySQL

来源:动视网 责编:小采 时间:2020-11-09 19:17:45
文档

MySQL插入性能测试_MySQL

MySQL插入性能测试_MySQL:测试目的对比myisam和innodb的性能差异,批量插入的效果。测试过程环境sync_binlog=0innodb_flush_method=O_DIRECTinnodb_flush_log_at_trx_commit=2单次插入总数:10w条表结构注:ip varchar(255)来源于业务,这里暂不做修改。CREATE
推荐度:
导读MySQL插入性能测试_MySQL:测试目的对比myisam和innodb的性能差异,批量插入的效果。测试过程环境sync_binlog=0innodb_flush_method=O_DIRECTinnodb_flush_log_at_trx_commit=2单次插入总数:10w条表结构注:ip varchar(255)来源于业务,这里暂不做修改。CREATE


测试目的

对比myisam和innodb的性能差异,批量插入的效果。

测试过程

环境

sync_binlog=0

innodb_flush_method=O_DIRECT

innodb_flush_log_at_trx_commit=2

单次插入总数:10w条

表结构

注:ip varchar(255)来源于业务,这里暂不做修改。

CREATE TABLE `wm_buz_consume_time_log` (
`id` int(10) NOT NULL AUTO_INCREMENT COMMENT ‘主键’,
`wm_poi_id` int(11) NOT NULL COMMENT,
`app_type` tinyint(2) DEFAULT ’0′ ,
`url` varchar(1024) DEFAULT NULL COMMENT ‘访问url’,
`consume_time` int(11) DEFAULT ’0′ COMMENT ‘响应时间’,
`ip` varchar(255) DEFAULT NULL,
`ctime` int(11) DEFAULT NULL COMMENT ‘创建时间’,
PRIMARY KEY (`id`)
)

单条INSERT

innodbmyisam
单线程36884600
4线程34004600
16线程32004600

批量Insert

enginerecord/insertinsert/secondrecord/second
MyISAM103554.2276252935542.3
501982.5311300599126.6
1001117.44688596111745
200599.3210122221198
300399.327219915119798
400298.744724058119498
500246.1738279123087
Inoodb101987.2778519219872.8
50790.58803681539529.4
100510.04094716651004.1
200324.7665247953.4
300203.10133992860930.4
400174.50239786769801
500142.42843513671214.2

测试结论

MyISAM因为表级锁,不受到线程数的影响;MyISAM显著的比INNODB快(INNODB存在锁、事务的开销),单线程高27%,随着线程数的增大,优势会更加明显。

MyISAM批量插入性能改善的十分明显,在单次批量到达100之后,插入速度基本上稳定下来,可以达到10w record/s,是单条插入的24倍。

Innodb批量插入性能改善的十分明显,并且随着批量次数的不断增大,性能再持续增加,批量100,可以打到5w record/s,是单条插入的14倍,但是只有MyISAM的50%。

MyISAM虽然插入性能比INNODB快很多,但是依旧建议采用INNODB+批量写入的方式,因为MyISAM存在表crash的问题(表很大的时候,索引较多的时候,recovery需要很长时间,并且recovery的过程中不可读写);另外不建议批量太多,存在超出max_allowed_packet的风险,会导致数据库在很多环节不太平滑。

文档

MySQL插入性能测试_MySQL

MySQL插入性能测试_MySQL:测试目的对比myisam和innodb的性能差异,批量插入的效果。测试过程环境sync_binlog=0innodb_flush_method=O_DIRECTinnodb_flush_log_at_trx_commit=2单次插入总数:10w条表结构注:ip varchar(255)来源于业务,这里暂不做修改。CREATE
推荐度:
标签: 测试 插入 mysql
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top