Mysql优化
1.硬件和操作系统层面的优化
2.架构设计层面的优化
3.Mysql程序配置优化
4.SQL执行优化
1.硬件层面
主要是cpu内存大小和磁盘的读写速度,网络带宽。
操作系统
应用文件句柄数,操作系统网络配置,都会影响到mysql性能。
2.架构设计层面优化
1).
搭建mysql主从服务集群,单个容易发生服务故障和宕机。
2)读写分离设计
读多写少。避免读写冲突,
3)分库可以降低单个服务器的io压力
分表可以降低单表数据量。提升查询效率。
4)热点数据可以用redis、mongoDB
3.程序配置优化
My.cnf文件配置文件,比如mysql5.7默认连接数是151,可以手动修改
binlog日志默认不开启,也可以手动修改开启,
缓存池BufferPool默认大小配置,
关于修改这些配置项,一般需要关注两个层面,
第一个是配置作用域,分为会话级别和全局范围。
第二个是是否支持热加载。
全局参数的设定对于已经存在的会话是无法生效的。
会话参数的设定随着会话的销毁而失效。
第三个全局类的统一配置:一般配置在默认配置文件中,不然重启服务会失效。
sql优化分三个步骤:
1.慢sql的定位和排查,
慢查询日志和慢查询分析工具
2.执行计划分析,
用关键字explain查看当前sql的执行计划
重点关注type和key、rows、filter等字段,定位sql执行慢的根本原因
3.使用show profile工具
Mysql提供的可以分析当前会话中sql语句资源消耗情况的工具,可以用于sql调优的测量。
当前会话中,默认这个show profile的关闭的状态,打开后会保存最近十五次的运行结果。
总结规则:
1.sql查询一定要基于索引来进行数据扫描,
2.避免索引列上使用函数或运算符,造成索引失效。
永远要用小的结果集去驱动大的结果集。
 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号