mysql高频面试题

本文介绍了如何通过MySQL的慢查询日志、开源工具如Arthas和运维工具如Prometheus和Skywalking来定位和优化SQL执行缓慢的问题,重点关注EXPLAIN分析、索引选择以及B+树结构在性能提升中的作用。
摘要由CSDN通过智能技术生成

如何定位慢查询

开源工具

调试工具:Arthas

运维工具:Prometheus、Skywalking

mysql自带满日志

#/etc/my.cnf
#开启mysql慢日志查询开关
slow_query_log=1
#设置慢日志的时间为2秒,sql语句执行时间超过2秒,就会视为慢查询,记录慢日志查询
long_query_time=2

sql执行慢如何优化

EXPLAIN +sql语句。

possible_key 当前sql可能会使用到的索引。

key 当前sql实际用到的索引

key_len 索引占用的大小

Extra  (Using index condition) 使用了索引,但是需要回表查询数据

type 性能由好到差为null,system,const(主键),eq_ref(主键或唯一索引),ref(索引),range(范围查询),

需要优化:index(全索引查询),all(全盘扫描)

索引 B+树

1、非叶子节点只存储指针,不存储数据,磁盘读写代价更低。

2、叶子节点存储数据,查询效率更稳定。

3、叶子节点数据是双向链表,更有利于扫库和区间查询。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值