Mysql性能优化的理解

发布时间:2024年01月15日

mysql的性能优化可以分为以下四大部分

  • 硬件和操作系统层面的优化
  • 架构设计层面的优化
  • Mysql程序配置优化
  • Sql优化

硬件层面的优化

  • 从硬件层面来说,影响Mysql性能因素有,CPU、可用内存大小、磁盘读写速度、网络带宽
  • 从操作系统层面来说,应用文件句柄、操作系统网络的配置都会影响到Mysql的性能。这部分优化一般都由DBA或者运维工程师去完成

架构层面的优化

Mysql是一个磁盘IO访问量非常频繁的关系型数据库
在高并发的场景中mysql的数据库必然承受巨大的并发压力,我们可以从一下几个方面去优化。

  • 1,搭建主从集群。
    单个mysql服务容易单点故障,一旦服务器宕机,将会导致以来mysql数据的应用全部无法响应,主从集群可以保证服务的高可用性。
  • 2,分库分表。
    通过降低单个服务器节点的IO压力,通过分库分表方式可以降低单标数据量,从而提升sql查询效率
  • 3,读写分离。
    在读多写少的场景下,通过读写分离方案,可以避免读写冲突导致性能的影响。
  • 4,针对热点数据,可以引入更为高效的分布式数据库。比如redis,mongdb等。

Mysql程序配置的优化

Mysql是一个经过互联网大厂验证过的生产级别的成熟的数据库,对于Mysql数据库本身的优化,一般是通过Mysql的配置文件my.cnf来完成的,比如。
Mysql5.7版本默认的最大连接数是151个,这个值可以在my.conf中修改,binlog日志默认不开启,缓存池bufferpoll的默认大小等。

SQL优化

  • 慢sql的定位和排查
    我们可以通过慢查询日志和慢查询分析工具得到有问题的sql
  • 执行计划分析
    通过explain来查看当前sql的执行计划,可以重点关注type key rows filterd等字段,从而定位该sql执行慢的根本原因
  • 使用show profile工具
    Show profile是Mysql提供的可以用来分析当前回话中,SQL语句资源消耗的情况的工具,可用于SQL调优的测量。在当前会话中,默认情况下处于show profile是关闭状态,打开之后保存最近15次的运行结果。针对运行慢的sql,通过profile工具进行详细的分析,可以得到sql执行过程所有的资源消耗情况。
  • sql的优化规则
    1,sql查询一定要基于索引来进行数据扫描
    2,使用联合索引的时候,联合索引中的列从左往右命中越多越好
    3,尽量不要使用select * 应使用具体的列,剔除不需要返回的列。减少回表
    4,尽量不要使用子表,使用联合查询的时候union all的时候不要使用UNION(这里会剔除相同的数据计算)
    5,使用like最好是%最好是在右边
    6,不要使用聚合函数,这样索引会失效
    7,排序 尽可能使用索引的字段排序,避免文件排序的方式。
文章来源:https://blog.csdn.net/weixin_30409927/article/details/135595568
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。