MySQL优化相关
1、慢查询分析相关的优化
通过命令查看慢查询最长时间,一般默认10s,对于现代高实时系统来讲,一个查询要10秒钟是不可接受的,所以我们对慢查询先进行监控,然后才能进行优化;
show variables like 'long_query_time';
通常我们会把这个时间设置在3秒以内;
set global long_query_time=2;
查看慢查询日志记录是否开启,以及慢查询文件的路径,如果没有开启则可以开启,同时还可以设置为保存日志到table;
show variables like 'slow%'
2、查询缓存相关,在有些管理端会建议你开启Query Cache,但是如果你的系统是实时性较高的系统,则建议你不要开启,建议增加单独的缓存层。
3、分析sql语句使用索引的情况
expain出来的信息有10列,分别是id、select_type、table、type、possible_keys、key、key_len、ref、rows、Extra
概要描述:
id:选择标识符
select_type:表示查询的类型。
table:输出结果集的表
partitions:匹配的分区
type:表示表的连接类型
possible_keys:表示查询时,可能使用的索引
key:表示实际使用的索引
key_len:索引字段的长度
ref:列与索引的比较
rows:扫描出的行数(估算的行数)
filtered:按表条件过滤的行百分比
Extra:执行情况的描述和说明
下图是对explain的详细解释,关键在于type参数,其值至少要达到range级别
在这里介绍一个分析工具Jet Profile,能把很多手动需要做的工作自动化去完成,节省时间,软件的授权费用也不是很贵,当然如果从长远的考虑来讲,公司内部应该有自己的类似的自动化分析工具;
今天先讲到这里,且听下回分解。
上一篇: MHA实现mysql8主从故障切换
下一篇: PHP正则表达式的电话号码匹配