加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MYSQL教程my.cnf参数配置实现InnoDB引擎性能优化

发布时间:2020-12-12 02:33:35 所属栏目:MySql教程 来源:网络整理
导读:《MYSQL教程my.cnf参数配置实现InnoDB引擎性能优化》要点: 本文介绍了MYSQL教程my.cnf参数配置实现InnoDB引擎性能优化,希望对您有用。如果有疑问,可以联系我们。 MYSQL数据库 在网上看了无数的my.cnf的配置,大多数提到的配置无外乎这几个: MYSQL数据库 1

《MYSQL教程my.cnf参数配置实现InnoDB引擎性能优化》要点:
本文介绍了MYSQL教程my.cnf参数配置实现InnoDB引擎性能优化,希望对您有用。如果有疑问,可以联系我们。

MYSQL数据库在网上看了无数的my.cnf的配置,大多数提到的配置无外乎这几个:

MYSQL数据库1. innodb_buffer_pool_size
2. innodb_log_file_size
3. innodb_log_buffer_size
4. innodb_flush_log_at_trx_commit

MYSQL数据库然后自己写了两个例子,一个单线程的,一个多线程的来通过改变配置参数来测试是否提高了性能.结果是只有innodb_flush_log_at_trx_commit可以提高性能,对于1,2,3参数无论是开其中某一个,还是三个同时调节都没有影响到测试性能.我想了下,可能是我的测试数据量还不够大造成的,后续有条件了再更大的数据量测试一下这3个参数.

MYSQL数据库这里详细说一下innodb_flush_log_at_trx_commit:

MYSQL数据库如果innodb_flush_log_at_trx_commit设置为0,log buffer将每秒一次地写入log file中,并且log file的flush(刷到磁盘)操作同时进行.该模式下,在事务提交的时候,不会主动触发写入磁盘的操作.
如果innodb_flush_log_at_trx_commit设置为1,每次事务提交时MySQL都会把log buffer的数据写入log file,并且flush(刷到磁盘)中去.
如果innodb_flush_log_at_trx_commit设置为2,每次事务提交时MySQL都会把log buffer的数据写入log file.但是flush(刷到磁盘)操作并不会同时进行.该模式下,MySQL会每秒执行一次 flush(刷到磁盘)操作.

MYSQL数据库结果

MYSQL数据库当设置为0,该模式速度最快,但不太平安,mysqld进程的崩溃会导致上一秒钟所有事务数据的丢失.
当设置为1,该模式是最平安的,但也是最慢的一种方式.在mysqld 服务崩溃或者服务器主机crash的情况下,binary log 只有可能丢失最多一个语句或者一个事务.
当设置为2,该模式速度较快,也比0平安,只有在操作系统崩溃或者系统断电的情况下,上一秒钟所有事务数据才可能丢失.

MYSQL数据库注意:由于进程调度策略问题,这个“每秒执行一次 flush(刷到磁盘)操作”并不是保证100%的“每秒”.

MYSQL数据库结论:innodb_flush_log_at_trx_commit设置为0或者2的时候速度差不多,两者都比设置为1的时候快很多.

MYSQL数据库这里又让我想到了InnoDB和MyISAM引擎的区别,InnoDB的优势在于并发处理情况下比MyISAM快.而我的线程池数量是根据cpu的线程数来设定的,然后我把线程池的数量设置比cpu线程数大,更大,再大,结果我的测试程序性能又提高了,我醉了,本来是我对线程池的理解太浅薄了.线程池的最优大小

编程之家PHP培训学院每天发布《MYSQL教程my.cnf参数配置实现InnoDB引擎性能优化》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读