【面试题】请你谈谈MySQL性能调优的方法

【面试题】请你谈谈MySQL性能调优的方法

这个问题是一个开放性问题,本人这一段时间参加面试(2022.12.26)经常被问道......

刚刚开始我回答的很混乱!虽然真的知道MySQL性能调优的方法,也做过类似的工作,但是面试的时候回答起来没有条理~

所以在这里,本人总结了这一类问题的答题技巧、模板。大家可以瞅瞅~如果有更好的回答方式,可以评论区一起交流!  


MySQL性能调优可以从4个方面来做

  1. 表结构和索引
  2. SQL语句优化
  3. MySQL参数优化
  4. 硬件及系统配置

这四点,从上到下优化成本越来越高,但是优化效果越来越差!

(1)表结构和索引

  • 分库分表
  • 读写分离
  • 为字段选择合适的数据类型
  • 适当的反范式设计
  • 为查询操作创建必要的索引......

(2)SQL语句优化

  • 通过慢查询分析需要优化的SQL语句,并进行优化
  • 通过explain、profile这些工具去分析SQL的执行计划
  • 避免使用select * 的查询,避免不必要的回表
  • 尽量使用索引,避免全表扫描

(3)MySQL参数优化

  • 设置Buffer_pool的大小,建议占总内存的50%~70%
  • 设置刷盘策略,要平衡好数据安全性与性能之间的关系

超详细的mysql数据库参数优化,都总结在这里了 - 腾讯云开发者社区-腾讯云 (tencent.com)https://cloud.tencent.com/developer/article/1655879

(4)硬件及系统配置

  • CPU的核心数
  • 网卡
  • 内存大小
  • 磁盘的读写性能

另外,上述涉及到的内容及原理请看

【MySQL】史上最全的MySQL高性能优化总结_面向架构编程的博客-CSDN博客_高性能mysql本人之前写过许多关于MySQL性能优化的文章,在这里会将它们做一个大串讲~这里主要是讲解MySQL底层数据结构,索引优化,事务及其相关特性,MVCC机制,BufferPool缓存机制等内容。https://blog.csdn.net/weixin_43715214/article/details/128336750

posted @ 2022-12-27 23:30  金鳞踏雨  阅读(52)  评论(0编辑  收藏  举报  来源