mysql高并发插入慢

阅读: 评论:0

mysql高并发插入慢

mysql高并发插入慢

最近在对程序进行压力时,发现一个接口在高并发插入时,响应很慢,大概需要15秒左右。分析记录解决方案。

1、代码优化

发现接口实现类中有个地方做了代码同步控制synchorized,分析后感觉没必要就去掉了,性能提高到7秒左右,虽然提高了,大还是不行,进一步优化。

2、数据库配置修改

数据库安装时,没有修改任何配置,全部为默认配置,网上查询解决方案:

 1、sync_binlog和innodb_flush_log_at_trx_commit 两个参数,这两个参数是控制MySQL 磁盘写入策略以及数据安全性的关键参数

于是修改这两个参数值,注意这样设置重启后将会失效!!!!

set global sync_binlog=500;  
set global innodb_flush_log_at_trx_commit=2;

2、innodb_buffer_pool_size 缓冲区配置,什么是 innodb_buffer_pool_size

MySQL 缓存表数据,索引数据的地方。增加它的值可以减少 磁盘 io ,提升 读写性能。

提升读的原理:因为 buffer_pool_size 设置的比较大, 很多表数据和索引已缓存到 buffer pool , 要查询的数据在缓存中找到了,就不需要访问磁盘了。读性能就得到了提升。

提升写的原理:因为 buffer_pool_size 设置的比较大, 写的数据,暂时以脏页的方式放在内存,然后慢慢落到磁盘,如果buffer_pool_size 太小就没办法缓存写操作,写一次访问一次磁盘 ,写入性能就比较慢。(实际自测增大buffer_pool_size后,并未带来纯写操作的性能提升, 这块有待进一步研究)

设置多大的 innodb_buffer_pool_size 合适? 通常将innodb_buffer_pool_size其配置为物理内存的50%到75%,在my.ini中设置,重启mysql:

3、结束语

最后再进行压力测试,性能提高到1秒左右了。

本文发布于:2024-02-02 17:18:09,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170686548745280.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:mysql
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23