## **Mysql关于in查询时,是否走索引的问题讨论**
## <blockquote class="danger"><p>答案: IN通常是走索引的,但是根据情况分析【有的走索引,有的不走索引】</p></blockquote>
#### 走索引
当IN后面的数据在数据表中不超过*30%*的匹配时走索引
#### 不走索引
当IN后面的数据在数据表中超过*30%*的匹配时是全表扫描,不走索引,因此IN走不走索引和后面的数据量有关系
根据实际的情况,需要控制IN查询的范围。原因有以下几点
1. IN 的条件过多,会导致[索引失效](https://blog.csdn.net/dd2016124/article/details/125076815),走索引扫描
2. IN 的条件过多,返回的数据会很多,可能会导致应用堆内[内存溢出](https://blog.csdn.net/qq_27471405/article/details/108889184)。
**所以必须要控制好IN的查询个数**