## **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的查詢個數**