当前位置:   article > 正文

MySql性能优化

mysql性能优化


一、硬件和操作系统层面的优化

从硬件层面来说,影响Mysql性能的因素有,CPU、可用内存大小、磁盘读写速度、网络带宽
从操作系层面来说,应用文件句柄数、操作系统网络的配置都会影响到Mysql性能。

一、架构设计层面的优化

MySQL是一个磁盘IO访问量非常频繁的关系型数据库
在高并发和高性能的场景中.MySQL数据库必然会承受巨大的并发压力,而此时,我们的优化方式可
以分为几个部分。

  1. 搭建Mysql主从集群,单个Mysql服务容易单点故障,一旦服务器宕机,将会导致依赖Mysql数据
    库的应用全部无法响应。 主从集群或者主主集群可以保证服务的高可用性。
  2. 读写分离设计,在读多写少的场景中,通过读写分离的方案,可以避免读写冲突导致的性能影响
  3. 引入分库分表机制,通过分库可以降低单个服务器节点的IO压力,通过分表的方式可以降低单表
    数据量,从而提升sql查询的效率。
  4. 针对热点数据,可以引入更为高效的分布式数据库,比如Redis、MongoDB等,他们可以很好的
    缓解Mysql的访问压力,同时还能提升数据检索性能。

一、MySQL程序配置优化

MySQL是一个经过互联网大厂验证过的生产级别的成熟数据库,对于Mysql数据库本身的优化,一般是通过Mysql中的配置文件my.cnf来完成的,比如。
Mysql5.7版本默认的最大连接数是151个,这个值可以在my.cnf中修改。
binlog日志,默认是不开启
缓存池bufferpoll的默认大小配置等。
由于这些配置一般都和用户安装的硬件环境以及使用场景有关系,因此这些配置官方只会提供一个默
认值,具体情况还得由使用者来修改。
关于配置项的修改,需要关注两个方面。
配置的作用域,分为会话级别和全局
是否支持热加载
因此,针对这两个点,我们需要注意的是:
全局参数的设定对于已经存在的会话无法生效
会话参数的设定随着会话的销毁而失效
全局类的统一配置建议配置在默认配置文件中,否则重启服务会导致配置失效

一、SQL优化

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


总结

以上为个人学习过程中对java的一些学习总结,如有错误,欢迎各位批评指导,如有侵权,请联系本人删除,如果觉得有一点帮助麻烦点个赞加收藏!谢谢!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/421300
推荐阅读
相关标签
  

闽ICP备14008679号