mysql高并发插入慢

2022-09-30 13:16:12

数据库配置修改

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

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

image

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

  1. set global sync_binlog=500;

  2. 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:

结束语

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

  • 作者:不能飞的肥燕
  • 原文链接:https://blog.csdn.net/haydenwang8287/article/details/113701470
    更新时间:2022-09-30 13:16:12