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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:chenni525@qq.com进行投诉反馈,一经查实,立即删除!