数据库

2019-01-15 MYSQL 数据库增删改性能分析

2019-01-15  本文已影响0人  刘明_d589

使用mysql开发过程中可能会发现,很简答的表,没有过多约束和依赖,数据也很少。查询速度很快,但是增删改操作耗时较长,30ms左右。

我们对sql进行profile分析,可以发现耗时主要集中在“query end” 这个阶段。

网上有很多文章供参考,这里直接给出可能得原因:

 查看系统  innodb_flush_log_at_trx_commit 配置的值:

innodb_flush_log_at_trx_commit配置

,如果是1,那么很有可能就是这个配置的原因了。

 innodb_flush_log_at_trx_commit 有三个可选项:

0. 事务直接返回,系统定时将缓存更新到磁盘

1.事务提交时,数据更新到磁盘完成才返回成功

2.事务提交时,数据刷到操作系统缓存才返回成功

耗时 0<2<1 ,网上有很多介绍,这里不赘述,实测耗时对比如下(表简单,数据量少的场景):

···

CREATE TABLE `test_table` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `name` varchar(45) DEFAULT NULL,

  PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4

···

innodb_flush_log_at_trx_commit 配置项的性能测试

耗时对比

参考:

https://www.cnblogs.com/xiaoit/p/4554048.html

上一篇 下一篇

猜你喜欢

热点阅读