Mysql慢查询

53 篇文章 0 订阅
6 篇文章 0 订阅
本文介绍了MySQL中用于诊断慢查询的常用命令,包括开启profiling、设置慢查询时长阈值以及使用explain进行查询分析。通过理解不同类型的查询类型如system、const、eq_ref、ref、range、index和all,可以有效地优化查询性能,避免全表扫描。此外,文章还强调了合理设置索引来提升查询效率的重要性。
摘要由CSDN通过智能技术生成

Mysql慢查询

常用命令

  • Mysql自带profiling性能分析工具:
	1. show variables like "%profiling%"; 
	2. profiling 为 ON 表示开启。
  • Mysql慢查询时长阈值设置:
	1. show variables like 'long%';
	2. value 为 1 表示超过1s为慢查询。
  • explain解析:
	1. explain select count(*) from item_tb;
	2. 其中,type字段表示命中的索引类型,包括:
		system > const > eq_ref > ref > range > index > all
		一般来说,得保证查询至少达到range级别,最好能达到ref。
		
		system:只有一条数据的系统表或衍生表只能有一条数据的主查询。
		const:仅仅能查出一条的SQL语句并且用于Primary key 或 unique索引。
		eq_ref:唯一性索引:对于每个索引键的查询,返回匹配唯一行数据。
		ref:非唯一性索引:对于每个索引键的查询,返回匹配的所有行。
				单值索引语法:alter table 表名 索引类型 索引名(字段)。
	    range:检索指定范围的行,查找一个范围内的数据,where后面是一个索引列范围查询 (between,in,> < >=)。注:in 有时会失效,导致为ALL。
	    index:查询全部索引中的数据。
	    all:查询全部表数据,即 全表扫描。

Reference

  • https://blog.csdn.net/weixin_30872671/article/details/98137430(all index range ref eq_ref const system 索引type说明)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值