mysql 的 in 不一定不走索引

很早之前就听别人说in 不走索引,但是一直没证实过,昨天在工作中用到了in所以在上班的时候突发奇想,使用mysql 的explain 关键字看下一条sql走不走索引,sql 如下所示:

explain SELECT
	* 
FROM
	lg_order 
WHERE
	logistics_number IN (
		'03245100007990077',
		'0324510000799007',
		'0323920000077348500001',
		'0329660000077348501001',
		'0322340000799007734',
		'0283920000799009498',
		'132902052979900773485',
		'03215700007998558001',
		'132284314879900s779001',
		'1329080973077348560001',
		'13292709257990077348561001',
		'1321640241777348562s001',
		'1324100421799007734ss8563001',
		'13224702197990077348561',
		'0326200000799007734s86001',
		'1327550457799007767001',
		'132836013379900768001',
	'132760071979900',
	'132249127779900')

 如上图所示,这里用到了in,但是这条sql 还是走了索引,如下图:

in索引的说明

后来通过查询网上的文章(如下所示)得知in 不一定不走索引,只有使用索引会导致比不用索引的性能还差则会不走索引,一般这个范围在数据量的百分之三十左右,超过百分之三十就不走索引了
MySQL中in到底走不走索引?_一个技术渣渣的博客-CSDN博客_in走不走索引explain介绍mysql中explain关键字可以模拟MySQL优化器执行SQL语句,是一个可以很好的分析SQL语句或表结构的性能瓶颈。explain的使用方法:explain + sql语句,下面我们先来执行下explain语句EXPLAIN SELECT * FROM `user` WHERE created_time > "2020-03-08";执行结果如下:可以看到有几个返回参数:id、select_type、table、partitions、type、p.https://blog.csdn.net/kevinxxw/article/details/109567275

索引的级别

另外索引是有一定级别的,级别越高性能越好,以下这篇文章有说明:

mysql 查询优化 索引 type级别_陈森森ml的博客-CSDN博客_索引级别mysql查询速度优化这是type级别 越左边 查询速度越快system>const>eq_ref>ref>range>index>ALL怎么样才能让type靠左呢 就是建立索引 最左边的俩级 基本达不到 我们让查询type达到第三级和第四级就很好了 为什么这么说呢?表主键 唯一索引也只能达到 eq_ref 级别的如果不做索引的话 肯定都是ALL了…Type级别解释1.system级别1.只有一条数据的系统表2.或衍生表只能有一条数据的主查询很明显 https://blog.csdn.net/qq_45065975/article/details/107906523

explain 关键字

explain 关键字不懂,参考这篇文章:

MySQL的Explain关键字查看是否使用索引 - 贾树丙 - 博客园explain显示了MySQL如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。简单讲,它的作用就是分析查询性能。 explain关键字的使用方法很简单,就是https://www.cnblogs.com/acm-bingzi/p/mysqlExplain.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值