where id not in (?,?,?) 会走索引吗? 查询条件使用in、not in会走索引吗?
in 能不能走索引需要看查询成本,如果走索引查询成本高那还不如走全表扫描,反之走索引查询。
如果走某个索引花费的随机IO比聚簇索引顺序查询(顺序IO)的成本高,那还不如全表扫描。
举例:
num字段建立了二级索引只有1,2,3这三种值,但是1,2这两个值各有100多万条而3只有4条记录数,如果查询条件是not in (1,2)会走索引,如果条件是not in (3)走会全表扫描。
in 能不能走索引需要看查询成本,如果走索引查询成本高那还不如走全表扫描,反之走索引查询。
如果走某个索引花费的随机IO比聚簇索引顺序查询(顺序IO)的成本高,那还不如全表扫描。
举例:
num字段建立了二级索引只有1,2,3这三种值,但是1,2这两个值各有100多万条而3只有4条记录数,如果查询条件是not in (1,2)会走索引,如果条件是not in (3)走会全表扫描。