mysql 5.6 5.7 性能_MySQL 5.6&5.7 性能优化 TOP10(转)

这篇博客总结了MySQL 5.6和5.7性能优化的十大关键设置,包括transaction_isolation、innodb_buffer_pool_size、innodb_buffer_pool_instances等,旨在通过最小配置实现最大性能提升。建议根据业务需求调整事务隔离级别,合理设置InnoDB缓冲池大小和实例数量,以及优化日志文件和刷盘策略,以达到最佳性能和安全平衡。
摘要由CSDN通过智能技术生成

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/NLOneDay/article/details/84637317

MySQL性能调整有数百个选项(5.6参见information_schema.global_variables,5.7参见performance_schema.global_variables),可以说,一千个DBA就有一千种配置方式,其繁杂程度不亚于今年双十一的购物津贴计算。

大家都知道有一个经典的"二八定律":在任何一组东西中,最重要的只占其中一小部分,约20%,其余80%尽管是多数,却是次要的。

为此,结合多年的MySQL DBA经验,以及《MySQL运维内参》、《MySQL技术内幕-InnoDB存储引擎》、MySQL官方文档、Percona官方文档等,总结出这篇"MySQL 5.6&5.7 性能优化 TOP10",以期用"20%最小配置获取80%最大性能",剩下的80%配置和20%性能就取决于实际业务和研究投入了。

文章仅供本人和大家参考,如有错误,恳请指正。

transaction_isolation

解读:事务隔离级别,Oracle, SQL Server等商业知名数据库默认级别为READ-COMMITTED,而MySQL默认为REPEATABLE-READ,它利用自身独有的Gap Lock解决了"幻读"。但也因为Gap Lock的缘故,相比于READ-COMMITTED级别的Record Lock,REPEATABLE-READ的事务并发插入性能受到很大的限制。

设置:隔离级别的选择取决于实际的业务需求(安全与性能的权衡),如果不是金融、电信等事务级别要求很高的业务,完全可以设置成transaction_isolation=READ-COMMITTED。

innodb_buffer_pool_size

解读:InnoDB缓冲池大小,它决定了MySQL可以在内存中缓存多少数据和索引,而不是每次都从磁盘上读取。我们都知道Redis的读写很快,其最重要的原因是它的所有数据都缓存在内存中。试想一下如果innodb_buffer_pool_size足够大,MySQL所有表数据和索引都能被缓存,那将是一种什么体验?

设置:如果是专用的MySQL服务器,一般设置为操作系统内存的75%左右,但至少保留2G内存用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值