优化mysql中where or和where in语句的效率
一、使用union来取代where in: 使用where or语句操作: select * from city where id = 1 or id = 3 or id = 4 输出: 1 广州 3 深圳 4 惠州 explain 结果: id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE city ALL PRIMARY NULL NULL NULL 5 Using where 标准使用where in操作: select * from city where id in (1,3,4) 输出: 1 广州 3 深圳 4 惠州 explain 结果: id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE city ALL PRIMARY NULL NULL NULL 5 Using where 使用union all操作: SELECT * FROM city where id = 1 union all SELECT * FROM city where id = 3 union all SELECT * FROM city where id = 4 输出: 1 广州 3 深圳 4 惠州