sql优化

sql优化由4个部分
第一个是硬件和操作系统成面优化,
第二个是架构设计层优化,
第三个是程序配置优化,
第四个是sql执行优化。
1.从硬件层面上来说影响mysql性能因素主要是cpu可用内存大小磁盘读写速度网络带宽从操作系统层面上来说应用文件句柄数操作系统的网络配置都会影响到mysql的性能优化这部分的优化一般都是bda或者运维完成,在硬件基础资源的优化中我们重点关注的是服务本身所承载的体量然后提出合理的指标要求避免出现资源浪费的一个现象.
2.架构优化mysql是一个磁盘io访问非常频繁的关系型数据库,在高并发和高性能的场景中mysql数据库必然会承受巨大的并发压力在此时的优化可以分几个部分第一个是搭建mysql主从集群单个mysql服务容易导致单点故障一旦服务宕机将会导致依赖mysql应用无法向应主从集群或者主主集群都可以去保证服务的高可用性,读写分离设计在读多少写的场景中通过读写的方案可以去避免读写冲突导致性能问题.
3.是引用分库分表的机制,通过分库可以降低单个服务器节省的一个io压力通过分表的方式可以降低单表数据量从而去提升sql查询效率第四个针对热点数据可以引入更为高效的分布试数据库比如redis、MongoDB等他们可以很好的缓解mysql的访问压力同时还能提升数据的检索性能
第三个点mysql的配置优化mysql是经过互联网大厂检验过的生产级别的成熟数据库,对于mysql数据库本身的优化一般可以通过配置文件my.cnf来完成比如说mysql5.7版本默认的最大链接数量是151个这个值可以在my.cnf中修改第二个binlog日志默认是不开起,我们也可以在这个文件中去修改开启第三个是缓存池Bufferpool默认大小配置等而这些配置一般是和用户的安装环境以及使用场景有关系因此这些配置官方只会提供一个默认的配置具体的情况还是要有使用者去根据实际情况去修改关于配置项去修改需要注意两个成面,
第一个是配置的作用域他可以分为会话级别和全局范围第二个是是否支持热加载因此针对这两个点我们需要注意的是全局参数的设定对于已经存在的会话是无法生效的,会话参数的设定,随着会话的销毁而失效第三个是全局的统一配置建议配置在默认配置文件中,否则重启服务会导致配置失效.

sql优化又可以分为三个步骤,第一个慢sql的定位和排查我们可以通过慢查询日志和慢查询工具分析得到有问题的sql列表,第二个是执行计划分析针对慢sql可以使用关键字explain来去查看当前sql的执行计划可以重点关注type、key、rows、filterd等字段从而去定位该sql执行慢的根本原因再去有地放失的进行优化,第三个使用show、profile工具是sql自带的去分析当前会话中sql语句资源消耗情况的工具可以用于sql调优的测量在当前会话中默认情况下show、profile是关闭状态打开之后会保存最近15次的运行结果,针对运行慢的sql通过profile工具进行详细分析可以得到sql执行过程中所有资源的开销情况比如io开销cpu开销内存开销等.。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值