mysql优化篇:where中的like和=的性能分析,java基础教程第三版pdf

========================================================================

首先,我们来介绍一下mysql中的explain关键字;explain是执行计划的意思,即通过该命令查看这条sql是如何执行的。

使用方法也很简单,即 explain + sql语句 ,例如:

explain select * from info where id like ‘12345’;

具体对于explain关键字的介绍我会将在以后的博客中总结,目前不懂得小伙伴可以自行百度。。。

mysql优化篇:where中的like和=的性能分析

那我们来使用explain测试一下like和=下的查询情况,首先我们来测试一下为索引的字段:

EXPLAIN SELECT

  • FROM

crms_customer WHERE

id = ‘7cf79d7c8a3a4f94b5373b3ec392e32d’;

mysql优化篇:where中的like和=的性能分析

而现在我们把"="换成like试一下:

EXPLAIN SELECT

  • FROM

crms_customer WHERE

id LIKE ‘7cf79d7c8a3a4f94b5373b3ec392e32d’;

mysql优化篇:where中的like和=的性能分析

小伙伴通过对比可以看到两条返回结果的type字段和Extr

《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享

a字段中的数据有所不同,那为什么不同,他们所代表的含义是什么呢?

type字段:

===========================================================================

type字段是一个可选值,这些值的性能从低到高的排序如下:

mysql优化篇:where中的like和=的性能分析

根据表格可以明显看出,其中const是常量查找,而RANGE是对索引列进行范围查找,所以性能也就很明显的体现了出来。

那使用like查询时,Extra字段代表什么呢?Extra字段中的Using where,又代表什么?

Extra字段

=======================================================================

1,Extra字段是Explain输出中也很重要的列,所代表着MySQL查询优化器执行查询的过程中对查询计划的重要补充信息。

2,Extra字段中的Using where意味着mysql服务器将在存储引擎检索行后再进行过滤。所以比起使用使用’='又多了一步查找过程。

显然通过以上的总结我们可以得出结论:当我们使用索引字段进行条件查询时,’='的性能要比like快。

是不是以为到这里就结束了呢?

然而并没有

mysql优化篇:where中的like和=的性能分析

有的小伙伴该问了那非索引字段呢?

对的,我们下面继续测试非索引字段

EXPLAIN SELECT

  • FROM

crms_customer WHERE

customer_name = ‘张飞’;


EXPLAIN SELECT

FROM

crms_customer

WHERE

customer_name LIKE ‘张飞’;

除了"="和like同样的两条语句,让我们运行一下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值