首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【面试高频 time: 2023-07-21】关于MYsql性能优化的理解

【面试高频 time: 2023-07-21】关于MYsql性能优化的理解

作者头像
用户8589624
发布2025-11-13 14:42:24
发布2025-11-13 14:42:24
490
举报
文章被收录于专栏:nginxnginx

分为四个部分

  1. 硬件和操作系统层面的优化
  2. 架构设计层面的优化
  3. MySQL程序配置的优化
  4. SQL执行的优化

详细分析

  1. 硬件和操作系统层面的优化
  • 从硬件层面上来讲:影响Mysql的效率主要因素是CPU,可用内存大小,磁盘读写速度,网络带宽;
  • 从操作系统层面上来讲:应用文件句柄数,操作系统的网络配置
  • 这些都会影响Mysql的性能,这部分的优化一般是由运维,DBA去完成的,在硬件基础资源的优化中,我们重点关注的应该是服务本身承载的体量,然后提出合理的指标要求,避免出现资源浪费的一个现象,
  1. 架构设计层面的优化 Mysql是一个磁盘IO访问非常频繁的关系型数据库,在高并发和高可用的场景下,Mysql数据库必然会承受巨大的并发压力,这时我们优化的方向主要可以分为以下几个方面
  • 第一个,搭建Mysql的主从集群,单个的Mysql数据库容易导致单点故障,一旦服务宕机,就会导致依赖MySQL服务器的应用全部无法响应。主从集群或者主主集群都可以去保证服务的高可用性,
  • 第二个,读写分离设计,在读多写少的情境下,通过读写分离的方案,可以去避免由于读写冲突导致的性能问题
  • 第三个,是引入分库分表的机制,通过分库可以降低单个数据库的IO压力,通过分表的话可以去降低单个表数据量,从而提升Mysql的查询效率。
  • 第四个,针对热点数据,可以引入更为高效的分布式数据库,比如像Redis,MongoDB等等,他们可以很好的缓解Mysql的访问压力,同时还能提升数据库的检索能力
  1. MySQL程序配置的优化
  • 第一个,Mysql是一个经受过互联网大厂检验过的生产级别的数据库,对于Mysql数据库本身的优化,一般可以通过MySQL的配置文件my.cnf来完成,
  • 第二个,binlog日志,默认是不开启的,我们也可以去my.cnf这个文件去修改开启,
  • 第三个,缓存池Bufferpool,默认大小配置,而这些配置一般和用户的安装环境有关系,以及使用场景,因此这些配置官方只会提供一个默认的初始值,具体的情况还得使用者去根据自己的使用情况去修改
  • 关于配置项的修改,需要关注两个层面,第一个是配置的作用域,他可以分为会话级别和全局范围,还有一个是是否支持热加载,因此针对这两个点,我们需要注意的是全局参数的设定,对于已经存在的会话是无法生效的,会话参数的设定,会随着会话的销毁而失效,第三个是全局类的统一配置,建议配置在默认的配置文件中,否者重启服务会导致配置失效
  1. SQL执行的优化 sql优化又可以分为三个步骤,
  • 第一个,慢sql的定位与排查,我们可以通过慢查询日志和慢查询日志分析工具得到有问题的Sql列表
  • 第二个是执行计划分析,针对慢的sql我们可以通过Explain来去查看当前sql的执行计划,可以重点关注type,key,rows,filterd等字段,从而去定位该sql执行慢的原因,再去有的放矢的进行优化
  • 第三个,使用show,profile工具,这个工具是mysql提供的可以用来分析当前会话sql语句资源消耗情况的工具,可以用于sql调优的测量,默认show,profile是关闭的,打开之后会保存最近15次运行结果

总结拓展

  1. Sql的查询一定要基于索引来进行数据扫描,
  2. 避免索引列上使用函数或者运算符(有可能会导致索引失效)
  3. where查询时使用like的%一定要放在右边
  4. 使用索引扫描,联合索引中的列从左往右,命中得越多越好
  5. 尽量使用Sql语句用到的索引完成排序
  6. 查询语句中尽量少用 * ,而是用具体有效的列来代替
  7. 永远要用小的结果集去驱动大的结果集
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-06-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 分为四个部分
  • 详细分析
  • 总结拓展
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档