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.避免索引列上使用函数或运算符,造成索引失效。

永远要用小的结果集去驱动大的结果集。

posted @ 2024-08-28 17:41  launch  阅读(39)  评论(0)    收藏  举报