很早之前就听别人说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 还是走了索引,如下图:
为什么会这样?参考这篇文章: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
explain 关键字不懂,参考这篇文章:
MySQL的Explain关键字查看是否使用索引 - 贾树丙 - 博客园explain显示了MySQL如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。简单讲,它的作用就是分析查询性能。 explain关键字的使用方法很简单,就是https://www.cnblogs.com/acm-bingzi/p/mysqlExplain.html
|