通过使用EXPLAIN关键字进行大量测试可以发现:
in通常是走索引的 ,当in后面的数据在数据表中超过 30% (上面的测试的匹配数据大约6000/16000 = 37.5%)的匹配时,会走全表扫描,即不走索引,因此 in走不走索引和后面的数据有关系 。
个人理解这很可能与回表操作有很大关系,如下场景:
当匹配数据量过大时,有可能会执行过多的回表操作,这样得性能其实莫不如就直接全表扫描算了
in通常是走索引的 ,当in后面的数据在数据表中超过 30% (上面的测试的匹配数据大约6000/16000 = 37.5%)的匹配时,会走全表扫描,即不走索引,因此 in走不走索引和后面的数据有关系 。
个人理解这很可能与回表操作有很大关系,如下场景:
当匹配数据量过大时,有可能会执行过多的回表操作,这样得性能其实莫不如就直接全表扫描算了