对于MySQL性能优化的理解

硬件和操作系统层面的优化(DBA)

硬件方面
	CPU、内存大小、磁盘读写速度、网络带宽
操作系统
	文件句柄数、操作系统的网络配置

架构设计层面的优化

MySQL是一个磁盘访问量非常频繁的关系型数据库,在高并发和高性能的场景中,MySQL承受着非常大的并发压力。
	搭建集群
		单个MySQL服务容易出现单点故障,一旦服务宕机,将会导致依赖MySQL数据库的应用全部无法响应。主从集群或者主主集群可以保证MySQL的高可用。
	分库分表
		通过分库分表可以减少对于单个MySQL节点的访问压力,通过降低单个表数据量来提高查询速度。
	读写分离
		读多写少的场景中,采用读写分离,避免读操作对写操作造成的性能影响
	热点数据缓存
		比如redis缓存数据,降低对数据库的访问压力

MySQL程序配置优化

my.cnf配置文件
	MySQL5.7默认的版本连接数为151个
	binlog日志,默认是不开启的
	缓存池大小的默认配置等
关于配置项的修改,关注两方面
	配置的作用域:分为会话级别和全局
	是否支持热加载
针对上述这两点,需要注意
	全局参数的设定对于已经存在的会话不生效
	会话参数的设定随着会话的销毁而失效
	全局类的配置建议配置在默认配置文件中,否则重启服务会导致配置失效

SQL优化

(三步)
	慢SQL的定位和排查
		通过慢查询日志和慢查询日志分析工具得到有问题的SQL列表
	执行计划分析
		explain关键字
			key\possible key \rows\ref等
	show profile 工具
SQL优化常用规则
	SQL尽量用到索引,一般主键索引是必须的,其次是普通索引、唯一索引、联合索引等这些辅助索引
	最左前缀原则,使用like劲量把%放在后面,但是注意放在前面也不一定不会使用索引,有一些特殊情况
	使用索引扫描的时候,从左到右命中越多越好
	小表驱动大表,select嵌套的情况
	使用有效的列,尽量不用select *
	尽可能用到索引,避免最后没用索引或者索引失效的情况下走文件索引file sort

本人才疏学浅,如有错误,烦请指出!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值