谈谈我个人对Mysql性能优化的看法

谈谈我个人对Mysql性能优化的看法,第1张

概述介绍《谈谈我个人对Mysql性能优化看法》开发教程,希望对您有用。

《谈谈我个人对MysqL性能优化的看法》要点:
本文介绍了谈谈我个人对MysqL性能优化的看法,希望对您有用。如果有疑问,可以联系我们。

因思维新建站官网:jz.inspinovation.com

文|李掌柜

在Lamp架构中,MysqL性能 优化必不可少,本日主要说的是我对MysqL性能优化的一些看法.下面请听我道来:

1、选择Percona或MariaDB版本的话,强烈建议启用thread pool特性,可使得在高并发的情况下,性能不会发生大幅下降.此外,还有extra_port功能,非常实用,关键时刻能救命的.还有另外一个重要特色是 query_RESPONSE_TIME 功能,也能使我们对整体的sql响应时间分布有直观感受;

2、设置default-storage-engine=InnoDB,也便是默认采用InnoDB引擎,强烈建议不要再使用MyISAM引擎了,InnoDB引擎绝对可以满足99%以上的业务场景;

3、调整innodb_buffer_pool_size大小,如果是单实例且绝大多数是InnoDB引擎表的话,可考虑设置为物理内存的50% ~ 70%左右;

4、根据实际必要设置innodb_flush_log_at_trx_commit、sync_binlog的值.如果要求数据不能丢失,那么两个都设为1.如果允许丢失一点数据,则可分别设为2和10.而如果完全不用care数据是否丢失的话(例如在slave上,反正大不了重做一次),则可都设为0.这三种设置值导致数据库的性能受到影响程度分别是:高、中、低,也就是第一个会另数据库最慢,最后一个则相反;

5、设置innodb_file_per_table = 1,使用独立表空间,我实在是想不出来用共享表空间有什么好处了;

6、设置innodb_data_file_path = ibdata1:1G:autoextend,千万不要用默认的10M,否则在有高并发事务时,会受到不小的影响;

7、设置innodb_log_file_size=256M,设置innodb_log_files_in_group=2,基本可满足90%以上的场景;

8、设置long_query_time = 1,而在5.5版本以上,已经可以设置为小于1了,建议设置为0.05(50毫秒),记录那些执行较慢的sql,用于后续的分析排查;

9、根据业务实际必要,适当调整max_connection(最大连接数)、max_connection_error(最大错误数,建议设置为10万以上,而open_files_limit、innodb_open_files、table_open_cache、table_deFinition_cache这几个参数则可设为约10倍于max_connection的大小;

10、常见的误区是把tmp_table_size和max_heap_table_size设置的比拟大,曾经见过设置为1G的,这2个选项是每个连接会话都会分配的,因此不要设置过大,否则容易导致OOM发生;其他的一些连接会话级选项例如:sort_buffer_size、join_buffer_size、read_buffer_size、read_rnd_buffer_size等,也需要注意不能设置过大;

11、由于已经建议不再使用MyISAM引擎了,因此可以把key_buffer_size设置为32M左右,而且强烈建议关闭query cache功能;

内存溢出PHP培训学院每天发布《谈谈我个人对MysqL性能优化的看法》等实战技能,PHP、MysqL、liNUX、APP、Js,CSS全面培养人才。

总结

以上是内存溢出为你收集整理的谈谈我个人对Mysql性能优化的看法全部内容,希望文章能够帮你解决谈谈我个人对Mysql性能优化的看法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/sjk/1156648.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存