Mysql可以从四个层面进行优化:
1.硬件和操作系统的优化
从硬件层面来讲,影响Mysql性能的原因主要有: cpu ,可用内存大小 ,磁盘读写速度,网络带宽
从操作系统层面来讲,应用文件句柄数,操作系统的网络配置,都会影响到mysql 的性能,这部分的优化一般是有DBA 或者 运维工程师来完成,在硬件资源的优化中,我们重点应该关注服务本身所承载的体量,然后提出合理的指标要求,避免出现资源浪费。
2.架构设计层面的优化
Mysql是一个硬盘IO访问非常频繁的关系型数据库,在高并发和高性能的场景中,mysql数据库必然会承受巨大的并发压力,此时我们优化的方式主要分为这几个部分:
2.1 搭建Mysql主从集群,单个Mysql服务容易导致单点故障,一旦服务器宕机将会导致依赖Mysql的应用全部复发响应,主从集群或者主主集群都可以保证服务的高可用性。
2.2 进行读写分离的设计,在读多写少的场景中,通过读写分离的方案可以避免读写冲突,导致磁性能问题
2.3 引入分库分表的机制,通过分库可以降低单个服务器节省的一个IO压力。通过分表的方式可以降低单表的数据量,从而去提成sql的查询效率。
2.4 针对热点数据可以引入更为高效的分布式数据库,比如Redis,MongoDB等,他们可以很好的缓解Mysql的访问压力同时还能提升数据的检索性能
3.Mysql程序配置的优化
3.1 对于Mysql数据库本身的优化一般可以通过配置文件 “my.cnf” 来完成。例如mysql5.7版本中默认最大连接数的151个,这个值可以再my.cnf文件中去修改
3.2 binlog日志默认是不开启的我们也可以在这个文件中去修改开启
3